php5フレームワークsymfonyを勉強しました。
去年の暮れにsymfonyの本を2冊読みまして、環境構築して実際に少し動かしてみていたのですが、小規模開発がメインでしたので php + smarty + pear でいいかなと思って放置してきました。
しかし、中〜大規模開発出来るようにならないとなと感じ初め、また勉強し直そうと思い勉強し直しています。
今日は軽くドキュメントを読みました。頭の中の整理の為にメモをしたいと思います。
(下記はsymfony1.0系の勉強です。何故1.0系の勉強しているのかと言うと、1.1系の最新バージョンでは、form_tag()の仕様変更があるのですが、それについての詳細の情報が取得出来ない為、フォーム周りの処理をどうしてよいのかわからず、1.0系から勉強しているという訳です。)
http://symfony.xrea.jp/
1〜5章をメモ
プロジェクトの作成
symfony init-project myproject
アプリケーションの作成
symfony init-app myapp
モジュールの作成
symfony init-module myapp mymodule
アクションの追加
<?php class mymoduleActions extends sfActions { public function executeMyAction() { } } ?>
テンプレートの追加
mymodule/templates/myActionSuccess.php
を追加する
アクションからの情報をテンプレートに渡す
<?php class mymoduleActions extends sfActions { public function executeMyAction() { $today = getdate(); $this->hour = $today['hours']; } } ?>
リスト4-7 - テンプレートはアクションの属性に直接アクセスできる(templates/showSuccess.php)
<p>Hello, world!</p> <?php if ($hour >= 18): ?> <p>Or should I say good evening? It is already <?php echo $hour ?>.</p> <?php endif; ?>
form_tagヘルパー
<p>こんにちは?</p> <?php if ($hour >= 18): ?> <p>それともこんばんはと言う方がよろしいでしょうか?もう<?php echo $hour ?>時です。</p> <?php endif; ?> <?php echo form_tag('mymodule/anotherAction') ?> <?php echo label_for('name', 'お名前は?') ?> <?php echo input_tag('name') ?> <?php echo submit_tag('Ok') ?> </form>
link_toヘルパー
<p>こんにちは!</p> <?php if ($hour >= 18): ?> <p>もしくはこんばんはと言った方がよろしいでしょうか?もう<?php echo $hour ?>時です。</p> <?php endif; ?> <?php echo form_tag('mymodule/anotherAction') ?> <?php echo label_for('name', 'お名前は?') ?> <?php echo input_tag('name') ?> <?php echo submit_tag('Ok') ?> <?php echo link_to('名前を教えない','mymodule/anotherAction?name=anonymous') ?> </form>
リクエストから情報を入手する
<?php class mymoduleActions extends sfActions { ... public function executeAnotherAction() { $this->name = $this->getRequestParameter('name'); } } ?>
リクエストパラメータをテンプレートから直接取得する
<p>Hello, <?php echo $sf_params->get('name') ?>!</p> **テンプレート内のリクエストパラメータをテストする <p>こんにちは、<?php echo $sf_params->get('name', 'John Doe') ?>さん!</p>
app.ymlのサンプル設定
リスト5-15 - app.ymlのサンプル設定
all: .general: tax: 19.6 default_user: name: John Doe mail: webmaster: webmaster@example.com contact: contact@example.com dev: mail: webmaster: dummy@example.com contact: dummy@example.com
リスト5-16 - PHPのコードでdev環境の構成設定にアクセスする
echo sfConfig::get('app_tax'); // カテゴリのヘッダーが無視されることは覚えておく => '19.6' echo sfConfig::get('app_default_user_name'); => 'John Doe' echo sfConfig::get('app_mail_webmaster'); => 'dummy@example.com' echo sfConfig::get('app_mail_contact'); => 'dummy@example.com'
スクリプトを設定に組み込む
all: translation: format: <?php echoln sfConfig::get('sf_i18n') == true ? 'xliff' : 'none' ?>
[PR]Spreeの情報を集めています。
ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/