PHP

PHPの共有拡張モジュールを手動でコンパイルする方法

PHP

とある環境でJSON関数を使おうと思ったら、どうやらPHP5.2.0以降でないとPHPに組み込まれていないようなので、インストールすることにしました。PHPのバージョンを調べたら、こんな感じ。古すぎですね、これ。 $ php -v PHP 4.4.3 (cli) (built: Aug 10 2006…

OpenID component for CakePHPを使って、OpenID Clientを作ってみた

PHP

cakebakerさんの「OpenID component for CakePHP」を使って、OpenID clientを作ってみました。 OpenID component for CakePHP - by cakebaker 上記のサイトの記述内容をそのままで問題ありません。ただ、Yahoo!とかmixiなどの適当なOpenID Providerでログイ…

PEAR自身をアップグレードする

PEAR自身のバージョンを上げる必要があったので、pear upgradeコマンドを実行すると、以下のエラーが! # pear upgrade pear pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9 pear/PEAR dependency package "pear…

Mac OS X(Leopard)へPEARをインストールする手順

手元のMacBook Pro(OS X; Leopard)にPEARをインストールした際の手順メモです。 追記 (2009/03/09 01:46) portでphp5のインストール時のオプションでpearをインストールできるみたい。気付くのが遅かった。orzちなみにこんだけオプションがあります。 $ port…

extract関数ってどんな場面で使うの?

PHP

extract関数を使ってるソース(というかCakePHPのソースなんだけど)って読みにくいね。変数の宣言もなく唐突に変数が現れてくるし、周辺の行を見るだけですまないからコードを追いづらい。extract関数は使ったことがないからよく分かってないんだけど、こうい…

CakePHPでfind('count', array('fields' => array('f1', 'f2'));としてはいけない

PHP

CakePHP 1.2.1での話です。(CakePHP 1.1.xだと話は違います)PersonというModelの全件を取得したい場合で、以下のような指定をすると件数でなくデータを取得してしまうみたい。 $this->Person->find('count', array('fields' => array('field1', 'field2')); …

シンプソン係数を取得するスクリプトを作ってみた

PHP

Yahoo! ウェブ検索 API で単語同士の近さを総当たりで調べるの記事を読んで興味が沸いたので、PHPを使って単語同士の近さを調べるためのシンプソン係数を取得するスクリプトを作ってみた。このシンプソン係数の値が大きいほど、一般的には両方のキーワードの…

CakePHPでカレンダーヘルパーを作ってみた

PHP

http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1786&forum=9&post_id=4263からお越しの方、祝日判定付きではありませんので、ご注意ください。CakePHPのhelperをテスト的に作ることにしました。とりあえず現実的に利用機会がありそうなCalandarHe…

CakePHPでmod_rewriteが有効な環境ではApp.baseUrlをコメントアウトする

PHP

最近、CakePHPを使った開発をやってるんですが、恥ずかしいところでハマってしまったので、恥を晒します。例えば、app/view/posts/index.ctp に $html->link('投稿', 'add'); といった記述をすると <a href="/posts/add">投稿</a> と表示されるべきなのに、どういうわけか、 <a href="/webroot/index.php/posts/add">投稿</a> と表…

「配列いじり」のコマンドライン版を作ってみた

PHP

ギークなお姉さんは好きですか 初心者向けPHP練習問題リンク+学習ログで書かれてた「配列いじり」のコマンドライン版を作ってみた。とりあえずこんな感じかなぁ。 …

XCache

PHP

GIGAZINEのPHPアクセラレータで一番高速なのはどれか?という記事よりXCacheというアクセラレータが紹介されていました。XCacheの公式サイトによると概要は以下の通り。 XCache is a fast, stable PHP opcode cacher that has been tested and is now runnin…

PHP 5.2.0にバージョンアップ

PHP

PHP 5.2.0がリリースされたので、自宅マシンにインストールしました。コンパイルオプションは前回と同じです。 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib \ --enable-sigchild --enable-mbstring --enable-mbregex \ --with-pdo-pg…

Ilia氏のZend Con. PHP & Performanceのスライドが公開されました

PHP

Ilia氏のZend Con. PHP & Performanceのスライドが公開されました。サーバ周りのチューニング、PHPの設定、効率のよいコードが詳しく書かれてあるので、とても参考になります。 The slides from the PHP & Performance tutorial I've given during the Zend'…

特定サイトの被はてなブックマーク数を取得する

PHP

はてなブックマーク日記よりXML-RPC APIが公開されたようなので、PHP版のサンプルを作ってみました。 機能変更、お知らせなど - はてなブックマーク日記 - (開発者さま向け) 特定サイトの被はてなブックマーク数を取得する XML-RPC API の公開について PEAR…

PHP4でセッションIDを再生成したい

PHPのManualを見てもらうと分かるのですが、PHP4の環境では、session_regenerate_idという関数によってセッションIDを再生成することができます。しかし、セッションIDが新しく発行されるのはよいのですが、古いセッションIDは残ってしまいます。このことに…

Creole、PDOを使ったO/Rマッピングライブラリ

symfonyについて調べていた際に知った、Creoleについて少し調べた。 Creole - Trac 簡単に要約すると、「CreoleとはPHP5用データベース抽象レイヤーで、JavaのJDBCのAPIにヒントを得ており、PEAR::DBやPEAR::MDB、ADOdbを取り込んでいる」とのこと。翻訳が間…

PHPフレームワーク(symfony)

日本で最近ホットな海外製のフレームワーク、symfonyを調べてみました。確認したSymfonyのバージョンは、以下の通りです。 symfony 0.6.3 PHP対応バージョン PHP5のみに対応しています。 symfony - open-source PHP5 web framework PHP5のみの対応ですので、…

syckのインストール

PHP

YAMLについて実際に触って理解を深めたいと思ったので、早速syckをインストールしてみました。(参考にしたのは以下のサイトです) ( Syck ): YAML for Ruby, Python, PHP and OCaml Symfonyで開発日記 » YAMLパーサSyckを利用する InstallingSyck - symfony -…

PHPフレームワーク(Maple)

日本発のもう一つの有名なフレームワーク、Mapleを調べてみました。確認したMapleのバージョンは、以下の通りです。 Maple 3.1.1 PHP対応バージョン 以下の動作環境を見る限り、PHP4およびPHP5に対応しています。 動作環境 ただしPHP4、PHP5の両方で利用可能…

PHPフレームワーク(Ethna)

まずはGREEでも利用されているフレームワーク、Ethnaから調べてみました。確認したのは以下のバージョンです。 Ethna 2.3.0 Preview2 PHP対応バージョン PHP4およびPHP5に対応しています。ただしPHP4をベースが中心のようなので、PHP5でそのまま利用できるか…

PATH_SEPARATOR

PHPの小ネタです。PHPには、「PATH_SEPARATOR」という定義済の定数があります。初めて知ったのですが、OSに依存させないので、Windows環境で動作確認をし、Linux上にアップロードするなんて場合には、コードの書き直しもなくて楽ですね。 PATH_SEPARATOR 定…