PHP: XML: Class 'DomDocument' not found

PHP で、 symfony を使ってアプリを組んでいたらこんなエラーが。

Class ‘DomDocument’ not found

ああ、 Dom が読めないって事か。
ってことで

php-xml をインストールしたら解決しました。

PHP: symfony 複数のデータベースにアクセス

一つのアプリで複数のデータベースにアクセス。

それぞれの環境に対して、多くの接続を定義できます。それぞれの接続は同じ名前でラベル付けされたスキーマを参照します。デフォルトで使われる接続名は propelでこれはリスト8-3のpropelスキーマを参照します。nameオプションによって別の接続を作成することができます:

php symfony –name=main configure:database “mysql://login:passwd@localhost/blog”

PHP: symfony redirect処理

redirect での引数の型が違う

これも若干はまりどころですが、redirectする際、’module/action’と文字列で’/'で区切って記述しますが、routingを利用して引数も渡したい場合、素直に書くと’foo/bar/variable’となります。
しかしこのように正直に書いても’variable’が絶ち落とされてしまいます。
この場合はどうするかというと、まずrouting.ymlで下記のように書いてあるものとして、

foo_bar_hoge:
url: /foo/bar/:hoge
param: { module: home, action: bar }
次に、redirectメソッドの引数は素直に書くのではなく、配列で渡します。
$this->redirect(array(‘module’ => ‘foo’, ‘action’ => ‘bar’, ‘hoge’ => ‘variable’));
これで正しくリダイレクトされ、引数も渡されます。

PHP: symfony 認証

security.yml

ファイルで、 indexアクションなら

index:
is_secure: on
にするだけ。
後は、アクションの中で
$user = $this->getUser()
$user->setAuthenticated(true);

とすれば、そのページを表示できる。
細かいRoleの設定は

$user->addCredential(‘god’);
$user->addCredentials(‘god’, ‘slave’);

PHP: symfonyのセットアップ

CentOS5.2 でPHPなフレームワークsymfonyを使う機会があったのでメモ。

必要なパッケージをインストール
yum install php php-xml

php-xml を入れないと、後で「symfony/symfony requires PHP extension “dom”」というエラーが出る。

次に、PEARにsymfonyして、PEARからインストール。

pear channel-discover pear.symfony-project.com
pear install symfony/symfony-1.1.7

# CentOS5.2だとPHPのバージョンが古くて1.7系しか入れられない。

ちなみに、Debian/Ubuntuでは、 apt-getで入れられるらしい。

deb http://www.symfony-project.org/get debian/
apt-get update
apt-get install php5-symfony

後は、プロジェクトを作って、アプリケーションを組み込んでいく感じ。
Djangoに微妙に似ているんだよねぇ
まあ、似ているから選んだんだけれどw

PHP CMS Drupalまとめ

公式サイト
公認日本語サイト
日本語紹介サイト
theme作成ガイド(公式にもあるが英語)
はてなブックマークでは、以下のように紹介されている。
=== 引用 ===
GNU GPL 2 ライセンスのもと、オープンソースとして開発・配布がおこなわれている非常に洗練されたCMS。
PHPで記述され、MySQLやPostgreSQLなどのデータベースとともに動作し、個人のブログから企業のサイトまで幅広く利用することができる。
日本ではまだあまり普及していないが、世界に目を向けると、
* Firefoxのサイト
* NASAのサイト
をはじめとして多くの有名サイトで採用されている。
今後は、XOOPSと並んで国内でもっとも普及が見込まれるCMSである。
=== 引用終わり ===
個人的には、xoopsに比べると明らかにコミュニティが活発で海外では既に一番人気のCMSかと思われる。根拠は以下のURLを参照の事。
http://www.google.com/trends?q=drupal%2Cxoops%2CMovable+Type%2Ctypo3%2Cgeeklog&ctab=2&geo=all&date=all
Japanese は10位以内にすら入っていない。理由は単純で、日本語の紹介サイトが充実していないからだ。結局は、英語のドキュメントを読める人でないと使えない CMSは日本では普及しない。この勢いだとしばらくすれば、日本語ドキュメントも出てくるかもしれないが、オープンソースに活発に取り組む日本の企業は少ないので、まだまだ先だろう。
moduleとthemeが豊富なので、手早く自前のサイトを準備したい人にはいいだろう。AjaxやDHTMLを取り入れているので、ユーザーインターフェイスもなかなか使いやすい。
企業で使うには、きちんとノウハウを溜めてからでないと厳しいので、大変かもしれない。
メニューなどの日本語は簡単に行える。
SEOにも対応した設計になっているので、それなりに効果を得られると思う。それなりという理由は、PHPTemplateを使っているので、動的に要素を変えすぎるとSEO的には弱くなるからだ。
キャッシュ機能も保有しているので、アクセスが大量に発生しても、軽量に動かす事ができる。
アクセス解析は、moduleとしてgoogle analyticsを導入することができるので、手軽に高機能なものを導入することができる。
自分はCMSを使う事には、自分のサイトを運営する事以外には余り興味がないので、この程度のレビューと言った感じで終わりとしようと思う。
何らかのきっかけがあれば、今あるサイトをDrupalで再構築するのも悪くないかもしれないが、dokuwikiは使いやすいので捨てたくはない。
Cell wiki の方は、media wikiよりも、drupalを使った方が管理が楽かもしれない。