It's raining cats and dogs.

無駄なことなんてないはず

PHP

slim3のMiddlewareの実行順

slim3のMiddlewareは後から追加した順に実行されるらしい add(new \MyMiddleware1); // 実行順 3 $app->add(new \MyMiddleware2); // 実行順 2 $app->add(new \MyMiddleware3); // 実行順 1 上から実行されてほしい感ある

slim3でクライアントIPアドレスを取得する

slim2では request->getIp(); 的なことができたのだけど、slim3だとどうやら取得する術が標準では存在しないぽい。マニュアルにも、サードパーティなライブラリ使えって書いてある。 てかどうしてなくした。普通クライアントIPとりたくなるだろ。 本体になく…

多次元配列をうまいことマージしてくれるarray_replace_recursive便利

PHP

今更感あるけど、array_replace_recursive というメソッドが便利だった。 設定ファイルなんかはphpでサクッと書いちゃうことが多い。例えば [ 'key11' => 'val11', 'key12' => 'val12' ], 'key2' => 'val2' ]; みたいなファイルにしておけば

slim 2.4からroutingでクラス形式のコントローラーを呼び出せるようになっていたらしい

slim 2.4からroutingでクラス形式のコントローラーを呼び出せるようになっていたらしい。 http://uzulla.hateblo.jp/entry/2014/01/11/040335 なるほどと思って、早速試したらできたので、おおーとなっていたのだけど、 上の例は特にパラメータを渡さない呼…

phpenvで作ったphp環境にpeclのライブラリをインストールする

phpenvでつくったphpの環境にpeclのライブラリをインストールした時のメモ。 pearのライブラリなんかはcomposerでプロジェクトローカルにインストールしてしまうんだけど、peclってsystem php?な環境にpeclコマンドでpecl install hogehogeみたいにインスト…

php5.4からデフォルトのtimezoneの扱いが変わっている件

php

結構今更感あるんだけど、php5.4からデフォルトのtimezoneの扱いが変わっている。 php5.4以上をインストールしてデフォルトのphp.iniのままphpを実行したりすると以下のようなメッセージが出る。 PHP Warning: Unknown: It is not safe to rely on the syste…

携帯(ガラケー)サイトで、PHP5.2以下から5.3以上へのバージョンアップ時にmb_output_handlerを使った文字コード変換でハマった時のメモ

php

前回のエントリでも触れたけど、とある携帯(ガラケー)サイトをPHP5.2から5.4にバージョンアップ対応していた時にまたハマった。※文字多めのエントリ ガラケーといえば、3キャリア対応するためにShift_JISでページを作るのは鉄板。やり方はいろいろあるけど、…

PHP5.2以下から5.3以上へのバージョンアップ時にcookie以外の手段でセッションIDを保持する場合のメモ

php

とある携帯(ガラケー)サイトのPHPを5.2から5.4にアップデートしようとしてハマった。 携帯サイトではcookieを使えない場合もあるので、(セキュリティ的に良いか悪いかは別にして)URLにセッションIDを付ける場合はわりと多いのではないだろうか? で、試し…

composerでSmarty2をインストールする

composerでsmartyを入れる時は { "require": { "smarty/smarty": "*" } } とやるとインストールできるのだけど、これだとSmarty3が入ってしまう。でも今の環境ではSmarty2が使われているので2を入れたい(バージョンアップしたらいいがなという話は置いとい…

composerでライブラリのインストールディレクトリを変える

composerはphpのライブラリ管理ツールだ。改めて説明する必要はないくらいだけど、rubyのbundlerとかperlのcartonみたいなもんだ。 composerのざっくりとしたディレクトリ構成は current_dir ├ composer.phar ├ composer.json ├ composer.lock └ vendor ├ au…

PHPの参照渡しを探す

PHP

関数呼び出し時の&をつけた明示的な参照渡しは、PHP 5.3からは非推奨、5.4からは廃止になるということで5.4になる前に撲滅しておきたいですよね!以前 id:MugeSo さんに教えてもらった技のメモプロジェクトのルートディレクトリとかで $ find $(pwd) -type d…

ブログチュートリアルをやった「だけ」でのCakePHPの感想的な何か

とりあえずブログチュートリアルをさらっとやっただけで、そもそもよくわかってないのですが、個人的にCakePHPの気になるところをまとめる。 ディレクトリ名の頭文字が大文字 ORMで取得したレコードのデータ構造 View側でのhelperの使い方 Controller内のmod…

PHP5.4のビルトインサーバーでCakePHP2.2でブログチュートリアルをやってみる。

Railsをやっていた人間的には、PHPでの代替品としてCakePHPあたりが良さげな感じらしいけど、昔CakePHP1以前くらいのときにbakeコマンドというのを使ってジェネレータがアレだなという印象を持ったまま、なんとなく避けて通ってきたCakePHPになぜだか向き合…

5.4のビルトインサーバーを試す

PHP

php5.4で導入されたビルトインサーバーをためす。RailsでいうWebrick的なアレ。 $ php -S localhost:8080 みたいに実行するだけでwebサーバー的なのが立ち上がる。ついでに $ php -S localhost:8080 -t /path/to/app/docroot -c /path/to/app/php.ini みたい…

namespaceを調べる

PHP

今更感あるけど、PHPのバージョンを上げたいなと思ってphp5.3以上の機能を調べてる。異なるnamespaceにある同じクラス名のクラスを両方requireした時に、namespace指定せずにそのクラスを呼び出せるのか?また呼び出せるのであればどちらのクラスが呼ばれる…

phpenvとphp-buildのインストール

PHP

ようやく時間ができてきた風?なので、前にも書いた通りphpenvとphp-buildをインストールする参考にしたブログやweb記事 phpenv で複数の PHP 環境を管理する モダンなPHP開発環境を構築する # MacOSX + phpenv + php-build + pyrus の環境構築メモ phpenv+p…

phpの環境作り

そろそろPHPときちんと向きあおうと思い立ったので以下をいれてみる予定。(今日は眠いのでやらない) phpenv php-build いろんなバージョン入れてみる

phpで未定義の変数にアクセスしてみた

php

phpで未定義の変数に対してアクセスしてみると不思議な挙動をしますね。 未定義(or null)の変数に対してプロパティっぽいアクセスをしてみる $ php -a php > // $a = null; でも同様 php > $a->hoge = 'test'; php > var_dump($a); object(stdClass)#1 (1) {…

phpのinteractive shell

php

今更感満載だけど、phpのinteractive shellをちょいちょい使うようになった。 普通に便利ですね。irbみたいで使いやすい $ php -a php > echo "hoge"; hoge マニュアルにも載っていた。 http://php.net/manual/ja/features.commandline.interactive.php 5.1…

標準の認証機構におけるログアウト時のセッション破棄

追記3/12 brtRiverさんからのご指摘があり、もしかしたら下記の記事は若干誤りがあるかもしれません。 後日再度検証してみるので、お気をつけください。お騒がせします。 事の発端 とある案件で、symfonyの標準のログインログアウト処理を調べていたところ、…

Viewの部分を勉強する。

昨日はがんばりすぎたので、今日はviewについてさらりと勉強する。 viewに値を渡したい 昨日まででviewを表示することができたので、なにかしらのデータを表示してみよう。 viewにデータを渡すときは連想配列を使うらしい。 controllerで$dataにデータをセッ…

はじめてのCodeIgniter

環境ができた。 で、まず初めにやることはやっぱしHello Worldでしょってことで、早速やってみる。 ディレクトリ構成の復習 今回のディレクトリ構成はこうしてる。hello_igniterってのがアプリ名だ。 ~/htdocs/hello_igniter # エントリポイント ~/var/apps/…

なんてこった

僕が昨日ダウンロードしたCodeIgniterは 日本語化のパッチだった。本体は別でダウンロードしなきゃいけないらしい。 なんということでしょう。でもだれかに突っ込まれる前に気がついてよかった。 きっと僕のブログなんて誰も読んでいないから誰にもばれてな…

今度こそインストールしてみる。

今朝日本語化のパッチだったことが判明して、ショックも覚めやらない間に今度こそとチャレンジ。 まずはダウンロード ダウンロード % wget http://codeigniter.com/download.php -O codeigniter.zip 解凍したら適当な場所に置く。 ちなみに、一昨日まで、自…

そろそろ本気出す。

いい加減MySQLやらApacheやらPHPやらを入れて勉強した気になっているのもまずいかな? とおもって、そろそろ冗談抜きにCodeIgniterをやってみよう。 で、さっそくCodeIgniterでググる。 なんかチュートリアルの動画があったので見てみたが、一番はじめの動画…

今日はApacheとPHPを入れてCodeIgniterを勉強した気になることにする

昨日はMySQLを入れてただけでCodeIgniterをだいぶ勉強した気になったので 今日はApacheとPHP5を入れてCodeIgniterを勉強した気になってみることにした。 ApacheもPHPもMacには標準で入っているけど、あえてportで入れ直すんだ。ちなみに今回はid:unlearnedの…

CodeIgniterを勉強しなければいけない

PHPのフレームワークでCodeIgniterというフレームワークの勉強をしなければいけないようだ。http://codeigniter.jp/会社のインターンでこのフレームワークを使って演習をさせるとかさせないとか。 P弱(PHP,Perl,Python)の僕にでも簡単にわかる軽量フレームワ…

キャッシュ(PHP)ファイルがあってpropel-generate-crudができなかったんすよ

前回の掲示板アプリにCRUDをつけてみようと思ってsymfony propel-generate-crudしたら Failed to write cache file "/home/user/webapps/bbsproject/cache/bbs/dev/config/config_databases.yml.php" generated from configuration file "config/databases.y…

アクセス制限で嵌る

ようやくPHPネタ Symfonyをやっとくかと、VMWare上の勉強用ゲストOS(CentOS,NAT)でサンプルを作ってみる。 symfony init-project sample symfony init-app bbsとしてサンプル掲示板を作ってみた。 ApacheのDocumentRoot設定したりごにょごにょしてhttp://ゲ…

転職

11月から新しい会社に移るわけだが、メインはPHPなのでもう少しまじめにPHPをやります宣言をしてみます。 というかダイアリーの使い方忘れとる。