この記事について PHP のマイクロフレームワークのひとつである、Slim Framework ですが、チュートリアルがいまいちイケてないので、お題を流用しつつ、初学者にももう少し分かりやすくなるよう、アレンジしてみようという試みです。 本記事は第5回で、前回はこちら。 私家版 Slim Framework チュートリアル (4) 〜 編集と削除、ついでにパーシャルビュー編 - Qiita 概要 今回は、肥大化した routes.php をスリムにするため、Controller クラスを作成してみます。 コピペしたコードもあちこちにあるので、ついでにそれらも共通化してしまいます。 11. Controller クラスの導入 11.1. 独自クラスを使うための準備 composer.json を開いて、以下の記述を追加します("psr-4" のセクションです)。
この記事について PHP のマイクロフレームワークのひとつである、Slim Framework ですが、チュートリアルがいまいちイケてないので、お題を流用しつつ、初学者にももう少し分かりやすくなるよう、アレンジしてみようという試みです。 本記事は第4回で、前回はこちら。 私家版 Slim Framework チュートリアル (3) 〜 表示編 - Qiita 概要 今回はチケットの編集と削除の機能を実装していきます。 その前に、重複した HTML 要素(ヘッダー、フッター)を共通ファイル化するための Tips をご紹介します。 7. PHP-View でパーシャルビュー すでにお気づきの方もいらっしゃると思いますが、これまで templates 以下に 3 つの View ファイルをつくりました。 その都度、 <!DOCTYPE html> から書いていて、ヘッダーとフッターが重複していま
この記事について PHP のマイクロフレームワークのひとつである、Slim Framework ですが、チュートリアルがいまいちイケてないので、お題を流用しつつ、初学者にももう少し分かりやすくなるよう、アレンジしてみようという試みです。 本記事は第3回で、前回はこちら。 私家版 Slim Framework チュートリアル (2) 〜 ルーティングと新規作成編 - Qiita 概要 今回は、チケットの表示用ページ(一覧および1件)を実装していきます。 5. 一覧表示 5.1. View ファイルの作成 View ファイルをつくります。 templates/tickets/index.phtml というファイルを作成してください。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"/> <title>チケット管理</ti
テーブル「persons」を作成後、bakeでmodelを作成しています。 bakeの実行例(linux): bin/cake bake model persons findメソッドの第1引数に‘all’を使用して全データを取得するソースコード「/src/Controller/PersonsController.php」は下記のとおりです。 URL「/persons/index」を指定した場合に、findメソッドで取得したデータを表示するように記述しています。 URL「/persons/index」のテンプレートは「/src/Template/Persons/index.ctp」で記述しています。 /src/Controller/PersonsController.php: <?php namespace App\Controller; use App\Controller\AppCont
PHP7に対応したローカル開発環境を作りたい 同一のPC上にXAMPPのv5.6.24(PHP5.6.24)のローカル開発環境とは別に、PHP7に対応したXAMPP環境を作りたい -今後、別のバージョンのXAMPPをインストールすることを見越してzip版にする -本投稿の設定方法では、バージョンの異なるXAMPPを同時に起動しないことを前提とする 構築環境 OS:Windows10 64bit CPU:Corei3 メモリ:8GB 構築するWEB開発環境:XAMPP7.0.9ポータブル版32bit(XAMPPは64it版がない) XAMPP7.0.9ダウンロード XAMPPのサイトへいく ポータブル版(zip版)をダウンロードする時は上部メニューの「ダウンロード」をクリック ダウンロードボタンをクリックすると、インストール版がダウンロードされてしまうので、「さらにダウンロード」をクリック
概要 PHPでバイト数単位で文字列を切り出す際に、思いつくのはsubstrを利用する方法だろう。 このとき半角文字列のみや全角文字列のみを対象に処理をする場合など、1文字あたりのバイト数が同じであれば問題は生じない。 しかし全角半角混在の文字列など1文字あたりのバイト数が異なる文字列をバイト数単位で切り出す際には注意が必要だ。 問題点 マルチバイトの文字列をsubstrで半端なバイト数単位で切り出すと、 文字列を中途半端な位置で切り出してしまい、不具合の温床となる。 具体例 文字コードSJISにおいて、 Aあいうえお という文字列があったとする。(Aは半角、それ以外は全角) この文字列をsubstrで6バイトで切り出すと、 全角文字(2バイト文字)「う」の1バイト目だけを切り出してしまい文字列が壊れてしまう。 テストコード <?php $target = "Aあいうえお";// 対象文字列
「truncate」は文字列を指定の文字数で切り捨てます。書式は次の通りです。 {$変数名|truncate} デフォルトでは80文字で切捨てを行います。1番目のパラメータで切り捨てる文字数を指定できます。 {$変数名|truncate[:文字数]} 文字数はバイト単位の文字数です。日本語などのマルチバイト文字の場合、指定した文字数によっては文字の中間で切捨てが行われ文字化けが発生する場合がありますので注意して下さい。 文字が切り捨てられると、切り捨てられた文字列の最後にデフォルトで「...」と言う文字列が付加されます。2番目のパラメータに「...」の代わりに付加する文字列を指定することが出来ます。 {$変数名|truncate[:文字数[:付加する文字列]]} デフォルトでは指定した文字数に関わらず単語が途中で切れないように単語単位で切捨てが行われます。単語単位では無く指定した文字数で切
PCIDSSの対応で各決済会社のTLS1.2縛りが始まりました。 乗り遅れてしまった!! やばい!間もなくじゃない? 的な話もチラホラ聞きます。 phpで作られているシステムであれば、curl等を用いて決済情報に確認を しにいったりリクエストを投げたりしているところが多いのではないでしょうか。 CentOS6以降であれば普通にyumで対応出来ちゃうのですが、 CentOS5系ですとyumでは無理。 proxyで逃げるという策もあるのですが、サーバーも立てられない環境だと、 なかなか安易に逃げれない。 という訳で、今回はphp-curlを更新して対応させちゃう話です。 /usr/localにはソースインストールしているような形跡が無い前提で、 php-5.3.19の環境を元に書いていますので、 その辺は自身の環境と読み変えて下さい。 全て最新を入れたいところなのですが、 全て最新だとなかなか
こんにちは、新型コロナウイルス感染症対策のためテレワーク勤務中の山田です。 テレワーク勤務に伴い通勤で運動をしなくなった分、定時後から日の入りまでちょくちょく近くの河川公園を歩いています。 ソーシャルディスタンスを保ちつつ、マスクを防備していますので息苦しいですが仕方ありません... 前置き さて、日本では新型コロナウイルスの話題が飛び交う毎日ですが、コロナの話題が出る1ヶ月ほど前主要ブラウザの「TLS1.0」と「TLS1.1」サポートが終了しようとしていたのは、ご存知でしょうか。 この業界に詳しい方であれば、既に対策済みの方がほどんどではないかと思いますが、新型コロナウイルスの世界的流行に伴い各主要ブラウザは、サポート終了時期が延期もしくは再有効化がなされています。 CentOS5系は、サポート終了しておりますOSになりますため、TLS1.2サポートの対策には6系以降のOSにリプレイスさ
EC-CUBEなどでPayPalなどのカード決済サービスのプラグインを利用している方も多いと思います。 利用にあたっては、TLS1.2への対応が必須となりました。 CentOS6やCentOS7のサーバであれば全く問題なくyumアップデートで対応できるのですが、CentOS5などOpenSSL、cURL、PHPがRPMでインストールされていてバージョンアップが難しい場合のクライアント側のTLS1.2対応について以下にまとめてみました。 ニッチな要件だと思いますが、ニーズがあれば幸いです。 条件:TLS1.2クライアントをCGI版のPHPを.htaccessにて利用すること はい。RPM版でのTLS1.2対応は依存関係など大変過ぎるので、ソースからCGI版PHPをインストールします。 各ソースファイルは事前に/usr/local/src/ 以下に置いておく(どこでも良い) # cd /usr
CakePHPにおけるパフォーマンスチューニングとは パフォーマンス向上するための方法は大まかに分けて2種類ある 1. ボトルネックとなる処理を探し当てて改善する方法 コードを修正する、パラメータをチューニングするなど。 2. キャッシュを使う方法 処理実行結果をキャッシュに保存することで、2回目にアクセスしたときにその処理を通らずに処理結果を返す事ができる。 DBのパフォチュー 1. 発行しているクエリ数を減らす これをViewに貼ればカウントできる。減らせるクエリは減らす。 2. findのパフォチュー 極力以下を利用する。 a) 基本的にqueryメソッドが最強。ただし... コードの可読性が下がるので大量データを取得する必要があるときに利用。場合によってはfieldで取得するより早い。 ✕ $this->Hoge->find('all'); ◯ $this->Hoge->query
TLS1.2に対応する SSL v3.0の脆弱性からTLSへの対応が求められてきたが、ついにTLS1.2以外の通信は無効にするとの連絡がきた。 結論から言うと、TLS1.2に対応するためには、cUrlのバージョンが7.34.0以上かつOpenSSLのバージョンが1.0.1以上でなければならない。 環境 ウチのサーバー環境は次の通り。 エックスサーバー:X20プラン PHP:5.6.30 cURL:7.47.1 SSL:OpenSSL/1.0.1e エックスサーバーはPHPのバージョンを上げると、あわせてcURLやOpenSSLのバージョンが上がる仕組みだ。 下記のPHPプログラムをサーバーにアップロードして、ブラウザからアクセスすると、自分のサーバー環境が確認できる。 <?php phpinfo(); ?> PHPプログラム cURLを使ったPHPプログラムのサンプル(POST送信)。 <
以前は、LambdaからRDSへ接続するには、RDSをパブリックアクセス可能に設定し、LambdaのIPアドレスを通すようなセキュリティグループの設定も必要でした。 しかし、LambdaからVPCアクセスが可能となった今、スマートかつセキュアに接続をすることができます。 LAMP環境を作る AWS LambdaのVPC対応によって、LAMP環境の構築が容易になりました。 LAMP環境とは、LAmbda, MySQL, PHP で構成されるアプリケーションの実行環境のことです。 (Python?知らない子ですね) AWS Lambdaで動かすPHP AWS LambdaにはPHPが入っていません。 なので、PHPを動かすためには、Node.jsなどのAWS Lambdaでサポートされている言語経由で、自分で用意したPHPの実行ファイルを起動する必要があります。 AWS LambdaでPHPを
<?php $ch = curl_init(); $options = array( CURLOPT_URL => "https://auctions.yahooapis.jp/AuctionWebService/V2/mySellingList?start=$start" ,CURLOPT_HTTPHEADER =>array("Authorization: Bearer $accessToken ") ); curl_setopt_array($ch, $options); $response = curl_exec($ch); $xml = simplexml_load_string($response,'SimpleXMLElement'); print_r($xml); した結果が下記の通りで、[totalResultsAvailable]の値は本当は0でないです。 /Resul
久々にphp書いたので晒します。 「今どきxmlとかこれ何のAPIだよwww」というツッコミは受け付けません、察してください。 // 初期設定 $API_ID = 'YOUR API ACCESS ID'; $API_PASSWORD = 'YOUR API ACCESS PASSWORD'; $API_VERSION = '1.0'; $API_ENDPOINT_URI = 'http://foo.var/api'; $data = array( "api_id" => $API_ID, "api_pass_hash" => md5($API_PASSWORD . time()), "version" => $API_VERSION, "condition" => 'paid' ); // postで接続 $ch = curl_init(); curl_setopt($ch, CURLO
一手間必要なPHPでのSimpleXML関数のパース処理 今回はPHPによるXMLデータのパース処理で気になったので、 それについての小ネタです。 まずは基本 PHP5でXMLデータを簡単にオブジェクト化してくれる 「SimpleXML」関数を利用します。 例えば simplexml_load_file() simplexml_load_string() 関数自体の細かい説明は省きますが、「simplexml_load_file()」は XMLファイルからXMLデータを読みだしてオブジェクト化し、 「simplexml_load_string()」は形成されたXML文字列をオブジェクト化する なんとも便利な関数です。 こんな感じに $xml = simplexml_load_file('xml.xml'); print($xml); 結果 SimpleXMLElement Object (
PHPでXMLのデータを解析する XMLをパースする XML形式についてはPHPの関数でsimplexml_load_stringという関数があります。 これはXML文書をパースしてオブジェクト化してくれる関数だそうです。 $xml = file_get_contents('http://blog.kzno.net/feed/'); $xmlObject = simplexml_load_string($xml); ただ、これだけだと比較する時や引数として値を渡したいときにオプジェクトとして扱うためうまくいきません。 引数として使用する場合は(string)で文字列にキャストしてやると幸せになれます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く