モノノフ日記

普通の日記です

php

Symfony Advent Calendar JP 2011が電子書籍になったそうです

去年の年末に、僕も書かせてもらったSymfony Advent Calendar JP 2011がようやく電子書籍になったそうです。 たまたまTwitter見てたら@koyhogeさんのツイートで気づいたっていう。 昨年のSymfony Advent Calendarが技評さんより電子書籍として出版されました…

Twigをもっと活用しよう :Symfony Advent Calender 2011 JP - 9日目 -

Symfony Advent Calendar JP 2011 : ATND 9日目の記事です。Symfony2.0.7が昨日リリースされましたね。今回のアップデートで個人的に熱かったのはSymfony2にバンドルされるTwigのバージョンがv1.1.2からv1.4.0へアップグレードされた所です。Twigは便利な機…

Symfony2でControllerやTemplateから現在のルーティング名を取得するやり方

最近Symfony2でガリガリコード書いてるので備忘録がてらブログをひさびさに更新していこうと思います。テンプレートで自分のルーティング名で分岐したい(ex. class="current"つけたい)、ということがよくありそうなので調べてみました。 結論から言うと、Sym…

Symfony2勉強会向けのセットアップ準備(Mac向け)

に参加予定なので先週末にセットアップしたメモをMacの人向けに共有します。勉強会の詳細はhttp://www.symfony.gr.jp/events/20101014-symfony2-studyから。環境はsnow leopard (10.6.5) + homebrewで構築しました。 Apache XCode3.2.4に入ってる2.2.15をそ…

Re: PHPのuniqid()が重い件について

php

PHPのuniqid()が重い件について - a_a___a_a試してみたら自分の環境でもuniqidの処理遅いので調べてみたら、(4年前に)バグとして報告されていました。 At last, I profiled (APD) it and discovered that uniqid() was terribly slow.I searched for some bi…

Propel 1.4のWhatsNewの超訳

この前のsymfony1.4勉強会では、doctrineばっかり言及されててPropelはあんまり触れられてませんでした。1.0から使ってる人はPropelに慣れきってると思うし、あと1.4の情報知らない人が多いのかな、と思って新要素のページを超訳してみたので公開しておきま…

symfonyの非公式マスコットが作成されたようです

昨日Twitterでsymfony使ってる人たちのことなんて言うんでしょうね、という話題をid:Fivestarさんがつぶやいてました。 事の発端 symfony使いはsymfonianなのかsymfonistなのかはたまた他にあるのかどれなんでしょう。。。 http://twitter.com/fivestr/statu…

PHP基礎文法最速マスターの補足

php

id:shin1x1 さんがPerl、Rubyに続いてPHP基礎文法最速マスター - Shin x blogで基礎文法をまとめてくれています。ありがとうございます。空いた時間で書いてみようかなと思っていたら先越されてしまいました。記事を読んでみてコードブロックの説明を最初読…

Imagick::resizeImageのフィルタ別速度を計測してみた

php

Imagick::resizeImageメソッドにはデフォルトでやたらフィルタが用意されていますけど、どれが良いのかさっぱりわからないので全部計測してみました。チェックしたのは http://www.php.net/manual/ja/imagick.constants.php で定義されているフィルタ定数す…

Boost.phpを触ってみた

php

今年のPHPカンファレンスジャパンで個人的に一番面白かったid:moriyoshiの発表に触発されてBoost.phpを試してみました。 試した環境 debian lenny githubからBoost.phpを取得する とりあえず最新版だけ欲しい人は--depthオプション使うとすぐダウンロードも…

symfony1.0.Xにおいてurl_forヘルパーのXSS脆弱性の可能性

symfonyにはrouting.ymlでの設定名を利用してサイト内のURLを返してくれるurl_forというヘルパー関数がありますがXSS脆弱性らしきものを見つけたので共有がてら書き留めておきます。XSSが起こるケースはurl_forの第2引数にtrueを指定して絶対パスを返すよう…

sfPropel13Pluginを導入したときの注意点まとめ

symfony1.0.XでPropel1.3のDBレプリケーションが使いたい!という理由だけでsfPropel13Pluginを導入してみたので簡単に手順をまとめておきます。 インストール SVNリポジトリからプラグイン本体をゲットすれば終了です。チェックアウトでもいいと思いますが…

オブジェクトと連想配列のパフォーマンス

php

でハッシュとオブジェクトのインスタンス生成の比較ベンチマークについて書かれていますが、b:id:i_ogiがブコメで言ってるように毎回配列定義するよりコピーした方が早いと思ったので試してみました。 array.php 0,'member1'=>1,'member2'=>2,'member3'=>3);…

メール配信用のプログラムを書いて失敗した点

php

8000人弱くらいの人数に一括メール配信したい、と言われてPHPでサクっとスクリプト書きました。まぁ、1回きりだしPHP標準のメール関数を使えばいいやと考えて、mb_send_mailを使って書きました。10件くらいのテストデータで動作確認して問題無かったのでえい…

Jobeet - 16日目: Webサービス

ひさびさの和訳公開です。公式ページに日本語訳がすでにあることに驚きながら訳しましたwしかし、ちょっと公式サイトの方は直訳で読みづらい感もあったのでこっちは適所を意訳してみました。あと訳中に出てくる「アフィリエイト」はおそらく「求人を出す会社…

symfony勉強会/懇親会に参加してきました

5/15に開催されたsymfony勉強会/懇親会に参加してきました。会場を提供してくださった株式会社ディノさんいつもありがとうございます。勉強会中の主なトピックスは1.2で変更された部分の話がやっぱり多かったですね。自分は1.2はJobeetでいじりながら、適当…

Jobeet - 15日目: フィード

Day 15: Feeds (1_2) - Symfony昨日、最初のあなたのsymfonyアプリケーションを開発し始めました。ぜひ続けてください。symfonyをより学ぶために、アプリケーションに新しい要素を追加してみたり、コミュニティで知識を共有したりしてみましょう。今日は全く…

Jobeet - 14日目: ぶらぶら過ごす一日

Day 14: The Lazy Day (1_2) - Symfony昨日のsymfonyユーザクラスの説明で、symfonyの基本的特徴のツアーは終わりました。まだ学ぶべきことはたくさんありますが、簡単なプロジェクトであれば自分で作るようになっていると思います。マイルストーン通りに進…

Jobeet - 13日目: ユーザ

http://www.symfony-project.org/jobeet/1_2/Propel/en/13昨日はたくさんの情報でいっぱいでした。ほんの数行のPHPコードだけで、symfonyのアドミンジェネレータは開発者が短時間でバックエンドのインターフェースを作成するのを可能にしています。 今日は、…

Jobeet - 12日目: アドミンジェネレータ

昨日Jobeetに追加した機能は求職者や求人側のフロントエンドアプリケーションがより便利になるものでした。バックエンドアプリケーションについて少しお話しします。 今日はsymfonyの機能的なアドミンジェネレータを使うことでちょうど1時間くらいでJobeetに…

Jobeet - 11日目: フォームのテスト

遅くなりましたが、明けましておめでとうございます。今年もマイペースで訳していきますのでどうぞよろしくお願いします。今回はフォームのテストの書き方についてです。Day 11: Testing your Forms (1_2) - Symfony 前回までのJobeet 昨日はsymfonyで初めて…

Jobeet - 10日目: フォーム

Day 10: The Forms (1_2) - Symfony 今回、結構ボリュームありました。。。しかしフォームフレームワークは1.0から思いっきり変わったところなので押さえておきたいところです。 前回までのJobeet Jobeetの第2週はsymfonyのテストフレームワークの紹介で幸先…

Jobeet - 9日目: 機能テスト

Jobeet - Day 9: The Functional Tests - Symfony 公式サイトのコメント欄でも指摘されていますが、getMostRecentProgrammingJob()メソッドで$categoryを絡めた条件を記述し忘れてるような気がするので追加しています。 前回までのJobeet 昨日、symfonyにパ…

Jobeet - 8日目: ユニットテスト

Day 8: The Unit Tests (1_2) - Symfony 前回までのJobeet 週末にかけて、アドベントカレンダーの最初の5日間で学んだJobeetの要素をカスタマイズしたり新しい要素を追加したりする全ての要素を復習しました。そのプロセスでsymfonyが持つその他の拡張機能に…

Jobeet - 7日目: カテゴリーページを作りましょう

メールで和訳に指摘をいただいたので反映させました。該当箇所は一番最後の「また明日」のところです。ご指摘いただいたGさん、ありがとうございます!しかし、自分の訳よりスマート。。こういうところでセンスの差が(´;ω;`) 前回までのJobeet 昨日はたく…

Jobeet - 6日目: モデルの詳細

Day 6: More with the Model (1_2) - Symfonyあとsymfony1.2.1がリリースされているのでupgradeしましょう。今日は比較的ボリューム少なめでした。 前回までのJobeet 昨日はすばらしい日でした。きれいなURLの作り方とたくさんの事を自動で行うsymfonyフレー…

symfony1.2のサポート期間が1年しかないとかいう話

元ネタはこちらです。ようやく正式リリースされたsymfony1.2が1.0よりサポート短い点を指摘されてます。 symfony1.2.1のリリースよりメンテナンス期間が1.0より短いってどうよ? - ぷぎがぽぎこのブログ記事を読んで2年前くらいのRails界隈で持ち上がった話…

Jobeet - 5日目: ルーティング

Day 5: The Routing (1_2) - Symfony 始める前に 昨日、Jobeetデザインコンテストを開始しました。もし参加したいならばチュートリアルで開発しているメインページのアーカイブを使ってください(アーカイブは静的なHTMLファイル、スタイルシート、画像を含…

Jobeet - 4日目: コントローラとビュー

Jobeet - Day 4: The Controller and the View - Symfony 4日目にして本家から大分置いていかれてしまいました。。あまり気にせず、マイペースでぼちぼち訳していきたいと思います。 始める前に jobeet_job_affiliateテーブルを昨日のチュートリアルで作った…

Jobeet - 3日目: データモデル

Jobeet - Day 3: The Data Model - Symfony ようやく少しPHPコードが出てきました。まだ1.2になって新しいなー、と感じるところはありません。Outputzが凄い勢いで枚数カウントされててちょっぴりうれしかったりします。 あと、コメント欄でFabienがDoctrine…