nazolabo

フリーランスのWebエンジニアが近況や思ったことを発信しています。

php

APCキャッシュを安全に扱うSafeApcを作った

php

https://github.com/nazo/safeapc なにこれ? APC(APCu)のユーザーキャッシュ(アプリから指定するキャッシュ。ソースコードのキャッシュではない)を「そこそこ安全に」扱うための簡単なラッパーです。 どう使うの? packagistに登録してあるので普通にcomp…

Laravel5を業務で一通り使ってみた感想

Laravel 5.0 を、2ヶ月くらい使ってみたけど、悪くはないんだけど、なんか最近持ち上げられすぎてる気がするので、気になったところを書き出してみる。

Laravel(5.0)のCollection

LaravelでDBからリストを取得したりすると、通常の配列ではなく、Collectionというオブジェクトが返ってくる。 これはPHPの配列をラップしたもので、便利な機能がいろいろ用意されている。配列をあんなことやこんなことしたいのにPHPがunkoで面倒!というこ…

Laravel5をHerokuのHHVMで動かす

アプリを作る 前回の記事を参考に適当に用意する。 Herokuにpushできるようにする heroku loginまでは省略。cedar-14Stackじゃないと動かないので注意。新規でheroku createすれば大丈夫。 composer.jsonを編集し、hhvmの定義を追加する。 あと、scriptsブロ…

Laravel5を試す

Laravelとか初めて使うよ!出たばっかりなので試す。 この記事はLaravel5.0が出たばかりに書いた内容です。最新の内容と必ず比較してください。 インストール PHP5.5以上とmcrypt/openssl/mbstringとcomposerが入ってる前提。 まずインストーラのインストー…

PHPカンファレンス北海道を開催しました #phpcondo

2012年4月21日(土)に、北海道では初めてとなる、PHPカンファレンス北海道が開催されました。 今回、私は実行委員長ということで、立ち上げから全ての面でイベントを作っていきました。何で開催したの? 元々「北海道でもPHPカンファレンスやるといいんじゃ…

CakePHP2.0ハンズオン@札幌で使用した資料を公開します

2011年11月26日に開催した、CakePHP2.0ハンズオン@札幌の資料をHTMLにしたものを公開します。 解説は現場で行ったため、説明不足の資料になっています。基本的には公式のチュートリアルと同一です。なので、以前の記事とも内容が重複しています。1. 作業の…

Symfony2の認証(access_controlとrole_hierarchy編)

Symfony2のユーザーには、権限のレベルを細かく設定できます。ここでの説明には、Entity経由でログイン編のソースを使います。権限を確認するために、アクションを1つ追加します。Controller/DefaultController.php ... /** * @Route("/user/sugoi") * @Tem…

Symfony2の認証(Entity経由でログイン編)

おそらくほとんどの人が実現したいと思う、Userテーブルの情報からログインをする方法を考えてみましょう。今回は、NazoUserBundleというサンプルバンドルを作り、そこで作業します。 chmod -R 777 app/cache app/logs php app/console generate:bundle --na…

Symfony2でAnnotationを書くときの注意

Symfony2で、EntityなどをAnnotationで手書きする際、 /* * @var string $name * * @ORM¥Column(name="name", type="string", length=255) */ private $name; これは反映されません。 /** * @var string $name * * @ORM¥Column(name="name", type="string", …

Symfony2で、Entityと連動しない場合にFormの値を取得する方法

createFormの第二引数にEntityを入れると、そのEntityに値が勝手に入るけど、それじゃEntityを使わない場合にFormの値ってどうやって取るの?という話。まあとても簡単で、$form->getData()で、全データがarrayで返ってきます。 $data = $form->getData(); $…

CakePHP2.0のブログチュートリアル

CakePHP2.0がリリースされました。とりあえず英語でブログチュートリアルがあるのでやってみます。インストール まずgithubから、2.0のtarballをダウンロードします。zipでもいいです。適当に展開して、展開したところにWebからアクセスします。(webrootで…

Symfony2で、created_at/updated_atを自動で使う方法

Symfony2で、Entityにcreated_at/updated_at(作成日時/更新日時)を自動で入れる方法普通にやるとLifecycle Callbackを使うことになるのですが、こんなの毎回書くのは面倒なので、一発でどうにかしたいです。 Doctrine Extensions(DoctrineExtensionsBundle…

Symfony2でアップロードされたファイルを設置する方法

いやファイルアップロードは前回の説明を見れば大体わかるんだけど、データの保存先をどうするの?的な話。アップロードされたファイルは DBに入れる どこかに移動する の2パターンしかなくて、前者はまあどうでもいいんだけど、問題は後者。symfony1だと、…

Symfony2のフォーム(Form)の使い方

Symfony2のフォームは、かなり使いやすくなっています。 1はModelとの依存が激しくて、凝ったことをしようとすると意味不明になりましたが、2は完全に切り離されており、かつ依存させることも可能になっています。パッと使う action側 $this->createFormBuil…

PHP5.4 alpha1を使ってみた その2(変更点1)

php

前回:http://nazo.hatenablog.com/entry/2011/06/29/000000前回でインストールが完了したので、次は実際に新機能を試してみます。変更点:http://www.php.net/releases/NEWS_5_4_0_alpha1.txt type hintingでscalar値が指定できるのは採用されなかったよう…

PHP5.4 alpha1を使ってみた その1(インストール)

php

PHP5.4のalpha1がリリースされました。 http://www.php.net/archive/2011.php#id2011-06-28-1とりあえずインストール方法例 ./configure --help でオプションを確認しながら設定してきます。 ./configure \ --prefix=/home/nazo/app/php5.4 \ --enable-mbstr…

東京のCakePHP勉強会を札幌でUst参加する会まとめ

php

主に受信側としてのまとめです。 機材関係 マイクは単一指向性のを用意しないと、Skypeの出力とかもろに入るのでよろしくない SHUREのBETA57Aをぽちった スピーカーは音量最大にすると割れるので、少し絞ったほうがいい(makies感謝) SRS-M50がよさそう? …

第9回 LOCAL PHP部勉強会

4/24に札幌でPHP勉強会をします。 日時 2010年4月24日(土) 14:00〜16:30 場所 札幌産業振興センター セミナールーム2 費用 参加費(会場代、おやつ代) 1人500円 懇親会 終了後は毎回恒例の懇親会を予定しております。 参加登録は http://atnd.org/events…

LDD'10WinterのMongoDBの資料

2010/02/13に札幌で開催された[LOCAL DEVELOPER DAY '10 /Winter:title=http://www.local.or.jp/?LDD/LDD10Winter](LDD'10Winter)で、MongoDBの話をしてきました。 今回はMongoDBについてを一通り話すつもりだったのですが、一通りすぎて全然時間が足りま…

LOCAL DEVELOPER DAY '10 /Winterが開催されます

2/13に、札幌でLOCAL DEVELOPER DAY '10 /Winter(LDD)が開催されます。 日時 2010/2/13(土) 12:45〜18:35 会場 札幌市産業振興センター セミナールームA 参加費 無料 懇親会 http://atnd.org/events/2843(2/5締切) 公式タグ ldd10winter 公式ハッシュタ…

PHPでMongoDBを使ってみる その2

http://www.nyphp.org/PHP-Presentations/145_Recovering-Mongos-MongoDB-PHP これが参考になる =以外の条件 selectDB( "foo" )->selectCollection( "bar" ); $data = array("name" => "foo", "num" => 1); $col->insert( $data ); $data = array("name" => …

PHPでMongoDBを使ってみる

5ヶ月ぶりの更新とかどういうことなの… MongoDBって何だ http://ja.wikipedia.org/wiki/MongoDB MongoDBのインストール バイナリが配布されているのでそれを使う http://www.mongodb.org/ 自分のプラットフォーム用バイナリを落として、/opt/mongoに入れると…

rhaco2を使う

rev4574だよ!1ヶ月後くらいには別物になってるかもしれないから気をつけてね! 参考:http://www.sharkpp.net/php/rhaco/how-to-use-rhaco2.html 初期設定 __settings__.phpを作る

LOCAL DEVELOPER DAY '09 /Winterレポート

php

MogileFSの話(原さん) 飛行機遅れてちゃんと聞けなかった… IPv6の話(koyhogeさん) そろそろIPv4なくなるよ IPv4とv6の違い アドレス長が違う 1つのデバイスに複数のアドレスがつく IPv6対応=v4でもv6でも動くようにする OS側はほぼ対応済 新APIに従っ…

Yiiの多言語対応(i18n)

多言語対応したいメッセージをYii:t()で囲む public static function t($category,$message,$params=array(),$source=null)$category毎にファイルで分けられる。実際の文字は$message。 protected/messages/config.phpを作成する

LOCAL PHP部 札幌勉強会02

php

で喋ってきました。 今回はフレームワーク特集ということだったので、いろいろフレームワークを並べてどうこうと話したかったのですが、ちゃんとつっこんだ話をしようとするとどれか1項目でも結構な長さになってしまうので、とりあえず単語だけ並べて後は調…

Yiiを使う

なにそれ Yii Framework(イーと読むらしい) なんかPRADOの人あたりが作ってるsymfonyをインスパイアしたPHPフレームワーク 12/3に1.0がリリースされた ダウンロード http://www.yiiframework.com/download/ インストール どっかに置く。 誰かPEAR Channel…

rhacoでTwitterのBOTを作るチュートリアル

PHPでTwitterのBotを作ってみる - yuyarinの日記 をrhacoで実装しようと思います。使用するrhacoはrev.2594(2008/1/21時点でのtrunk)です。 初期設定 ※ 作業中は作業フォルダ以下の全てのフォルダ/ファイルのパーミッションを777(あるいはapacheが読み書…

if文の判定順序を確認する

PHP