php

symfony 1.4向けの解説書 出版予定

この記事は、Symfony アドベントカレンダー 2010 に参加しています。 Symfony Advent 2010 : ATND http://www.symfony.gr.jp/adventcalendar/2010 「えっ、いまさら?」 と思う方も 「おー!、やっと!」 と思う方もどちらもお待たせしました! 現在、主に日…

自分の部下には「パーフェクトPHP」を読んでおいてもらいたい理由5つ

php

自分の部下には、「これ読んどけ!」と必ず渡しておきたい1冊です。 PHPの開発現場で実際に必要な知識を幅広くカバー さすがにこれで「全部」というわけにはいきませんが、書かれている内容はどれも「必要」 MVCフレームワークの用語や知識 必要最小限かつモ…

PearのServices_TwitterでOAuth認証している場合のfriendships/show

OAuth認証してAPIリクエストを送信している場合は、friendships/showでsource_idまたはsource_screen_nameのいずれも指定しなくてもいけるはずなんだけど、PearのServices_Twitterだとパラメーターの数が足りないと言われエラーになります。 http://apiwiki.…

PHP Matsuriに参加しました&やったことなどまとめ #phpmatsuri

php

PHP Matsuri 2010に参加しました。 いろいろやったことなど Symfony2のドキュメント翻訳をこっそりやった→ symfony-docs-ja/contributing/documentation at master · symfony-japan-old/symfony-docs-ja · GitHub @brtriver、@cakephperとの秘密プロジェクト…

filter_var()でURLのフォーマットチェック(とバグ)

PHPにはfilter_var()という関数があって、この関数を使うとURLのフォーマットチェックができます。(PHP 5.2.0以降) PHP: filter_var - Manual ですが、この関数のURLフォーマットチェックにはバグがあって、ドメイン部分にハイフンがあると「URLではない」…

メモ Warning: range() [function.range]: step exceeds the specified range in sfYamlDumper.php on line 43

突然表題のようなWarningが出るようになったのでメモ。Warningの箇所はsymfonyライブラリのsfYamlDumper内のコードで、range関数を使っている箇所です。 が、以下のような状況なので、なぜここでWarningが出るのかさっぱり分かりません。 sfYamlDumperへ渡る…

SPLのsplFileObjectを拡張してエンコード変換できるようにしてみた

なにやらPHPでモダンがアツイ(何をいまさら)ようなので・・・。 モダンPHP勉強会を開催しました & 資料 - 肉とビールとパンケーキ by @sotarok PHPでテキストファイルを読み込む場合、内部はUTF-8だけどファイルはShift-JISって場合がたまにあり、読み込ん…

dir関数の詳細を調べてみた

dir関数の引数で指定したディレクトリに読み取り権限がなかった場合、falseが返ってくるのですが、この挙動についてPHPのソースを確認してみました。該当するのは、/ext/standard/dir.cです。 (PHP-5.2.9のソースで確認)203行目から、以下のような部分があ…

ExtendedFileManager使用時に読み取り権限のないディレクトリがあるとFatal Errorになる件

とあるシステムのコンテンツ管理画面にWYSIWYGエディタのxinhaを使っており、コンテンツ(PDFやWordファイルなど)のアップロード用にExtendedFileManagerプラグインを有効にしています。 このプラグインで、突然Fatal Errorが出るようになったので調べたと…

PHP Universal Feed Generatorでタイトルの文字化け対策

http://www.ajaxray.com/blog/2008/03/08/php-universal-feed-generator-supports-rss-10-rss-20-and-atom/ PHPでATOM、RSS1/2フォーマットのフィードが超簡単に吐き出せる「FeedWriter.php」:phpspot開発日誌 PHPSPOT 開発日誌で紹介されていた RSS 出力ラ…

PDOStatementはTraversableインターフェイスを実装

PHP: PDOStatement - Manual PDOStatement implements Traversable {となっているように、PDOStatementクラスはTraversableインターフェイスを実装しています。 なので、execute()を実行したPDOStatementオブジェクトを直接foreach()に突っ込んでループさせ…

Matzさんの言いたいことって

話題になっている Matz さんの日記 −Matzにっき「Attacking PHP」 言語仕様のことをアレコレ述べつつ脆弱性や初心者どうのこうのという書き方をされているので、さも PHP そのものを否定しているように見えてしまうのだけれど、コメント欄などをじっくり読ん…

symfonyでアクションにアクセス制限を設定する方法

symfonyではユーザーセッションで認証管理を行うことができるが、ユーザーの認証状態に応じてアクションを実行するかどうかを設定することができる。 http://develop.ddo.jp/symfony/book/jp/1.0/security.html

symfony(sfMail)で日本語メールを送信する方法

普通に mb_send_mail() でゴリゴリ書くのではなくて、symfony のテンプレート機能を使用してメールを送信することができる。 ただし、日本語(JIS)メールを送信する場合は自前でエンコード変換が必要。 http://develop.ddo.jp/symfony/book/jp/1.0/email.ht…

symfonyで現在のモジュール名を取得する方法

symfony で現在のモジュール名やアクション名は現在のコンテキストを参照すればよい。 http://it.kndb.jp/entry/show/id/580 以下のようになる。 $module_name = sfContext::getInstance()->getModuleName(); ※templatesで使用する場合 $module_name = $sf_c…

symfonyでバッチプロセスを書く方法

symfonyのsf_sandoboxを解凍するとあらかじめ「batch」というディレクトリがあるけど、ここにどういったファイルを入れれば動くのか。 http://develop.ddo.jp/symfony/book/jp/1.0/batch.html 基本的には定数の設定を行った後、app ディレクトリ内のアプリケ…

symfonyで現在のURLやタイトルを取得する方法

→http://it.kndb.jp/entry/show/id/581より。 現在のURLを取得する $url = sfContext::getInstance()->getRequest()->getUri(); ※templatesで使用する場合 $url = sf_context->getRequest()->getUri(); 現在のページのタイトルを取得する $title = sfCont…

パーシャル

symfonyには「パーシャル」という機能があって、ビューの部品化のようなことができる。 http://codezine.jp/a/article/aid/1063.aspx?p=2 ビューの一部のコードを別PHPファイルにして、複数のビューから呼び出せる。例えばビューに以下のようなコードを書く…