1.1.0 RC1での開発メモです。**(編集中)** [[symfony/基本コマンド]] [[symfony/モジュール]] [[symfony/テンプレート]] [[symfony/テンプレート/パーシャル]] [[symfony/フォーム]] [[symfony/サブドメイン]] [[symfony/セッション保存]] [[symfony/SSL]] [[symfony/XREAへインストール]] === リンク === PHP5用フレームワークsymfony(本家) http://www.symfony-project.org/ PHP5用フレームワークsymfonyの日本語情報サイト http://symfony.jp/ 最新の日本語翻訳ドキュメント http://code.google.com/p/symfony-doc-ja/ [[symfony1.1]]へ移行します。 ====== symfonyインストール ====== インストールおよび初期設定に関するメモです。\\ ===== PEARのプロキシの設定 ===== PEARを利用してインストールする場合でプロキシサーバを経由する必要があるときは、事前の設定が必要です。\\ $ pear config-set http_proxy YOUR_PROXY:YOUR_PORT config-set succeeded * 設定後はchannelのdiscoveryがクリアされるので再実行すること。 * channnel-discoverした際に、以下のような反応があればOK $ pear channel-discover pear.symfony-project.com ===== WEBサーバの設定 VirtualHost(Apache2.x) ===== Apache2.x系はhttpd-vhosts.confにバーチャルホストを書くのが簡単だそうです。\\ ユーザーツリーとは別に、デバッグ用モジュール/symfony/web/sfへのエイリアスが必要です(デバッグ用各種ツールなどで使用されます)。\\ Listen 888 ServerName S0080 DocumentRoot "C:/CF/projects/myproject/web" DirectoryIndex index.php Alias /sf C:/CF/PHP/PEAR/data/symfony/web/sf AllowOverride All Allow from All AllowOverride All Allow from All ===== Windows上でsymfony ===== http://www.symfony-project.com/askeet/ja/1が参考になります。 symfonyを動作させるにはPEARのVersionが1.4.0以上 PHPのVersionが5.1.0 パスを通していないのでc:\Program Files\xampp\phpに移動してpear versionを実行します c:\Program Files\xampp\php>pear version PEAR Version: 1.4.11 PHP Version: 5.2.1 Zend Engine Version: 2.2.0 大丈夫そうです。 次に pear channel-discover pear.symfony-project.com でパッケージを落とします。 pear channel-discover pear.symfony-project.com pear install symfony/symfonyでインストールします。 symfony -V でバージョンを確認できたら成功です。 C:\Program Files\xampp\php\PEAR\symfony にファイルが展開されているはずです。 続いてプロジェクトのセットアップです。symfonyのお勉強プロジェクトであるaskeetですすめてみます。以下のコマンドでセットアップできるようです。 続いてWebサーバの設定をします。 C:\Program Files\xampp\apache\conf\extra\httpd-vhosts.conf に以下のVirtualHostを追加します。 ServerName askeet DocumentRoot "H:\web\makotokw.com\labs\sandbox\askeet\web" DirectoryIndex index.php Alias /sf "C:\Program Files\xampp\php\pear\data\symfony\web\sf" AllowOverride All !!symfony1.1へアップグレード pear install symfony/symfony-1.1.0RC1 !!プラグイン http://develop.ddo.jp/symfony/book/jp/1.0/plugin.html http://trac.symfony-project.com/wiki/SymfonyPlugins !ショッピングカートプラグイン http://trac.symfony-project.com/wiki/sfShoppingCartPlugin http://develop.ddo.jp/symfony/book/jp/1.0/shopping_cart.html *必要に応じてPROXY設定をする。 [#ge98d64d] *プロジェクトに移動 [#q8265f90] cd C:\CF\projects\xfstore symfony plugin-install http://plugins.symfony-project.com/sfShoppingCartPlugin symfony cc symfony plugin-install local symfony/sfShoppingCartPlugin だとうまくいかなかった。 *1.0用のはどうやってもインストールできないのでtgzを手動で展開配置。(とりあえずそれだけで動くみたい) [#cca5f8fc] plugins/sfShoppingCart !SSLプラグイン http://trac.symfony-project.com/wiki/sfSslRequirementPlugin * 1.1対応版があるので以下でインストール可能(これも2.0をpluginに展開) symfony plugin-install sfSslRequirementPlugin !PayPalプラグイン *PayPalプラグインはPHP5で簡単にSOAPが使えるので廃止 [#v1add169] http://trac.symfony-project.com/wiki/sfPaypalDirectPlugin *必要に応じてPROXY設定をする。 [#z3b5c735] *プロジェクトに移動 [#ee87ca41] cd C:\CF\projects\xfstore symfony plugin-install http://plugins.symfony-project.com/sfPaypalDirectPlugin symfony cc !!schema.xmlの関するトラブル *同じ位置に、「ほげほげschema.xml」という名前が存在すると、そちらも一緒にしょりしようとして、「Databaseのpropel定義がないよ」というエラーになってしまう。 [#u68c198a] →schema.xmlは1つだけにしておく(拡張子をorg等にすればOK) !!DB日本語の文字化け(テストデータ含む) *database.ymlにencoding行を追加。 [#af51bde7] all: propel: class: sfPropelDatabase param: phptype: mysql host: localhost database: cfstore username: cfmanager password: cfmanager encoding: utf8 !1.1 *DBの文字化けはdatabases.ymlにて設定。 [#y7ab69e4] all: propel: class: sfPropelDatabase param: dsn: 'mysql://cfmanager:cfmanager@localhost/cfstore' propel: null encoding: utf8 *[ISO-639|http://ja.wikipedia.org/wiki/ISO_639]と、[ISO-3166|http://ja.wikipedia.org/wiki/ISO_3166-1]の組み合わせ [#ob420c75] frontend/config/settings.yml all: .settings: default_culture: ja_JP !!!自動生成 !データベース設定 *コマンドで一括設定が可能。(databases.ymlなどが書き換わるので注意) [#la90b2d1] php symfony configure:database mysql://root:pa$$word@localhost/symfony_project *propel.iniに、mySQLのinnoDBの設定がある [#q398fa77] ;propel.mysql.tableType = InnoDB !プロジェクトの生成 cd /home/sfprojects/ symfony init-project !アプリケーションの生成 cd /home/sfprojects/ symfony init-app !モジュールの生成 cd /home/sfprojects/ symfony init-module !データモデル(schema.xmlから)のセットアップ cd /home/sfprojects/ symfony propel-build-model !データモデルからSQLの出力 cd /home/sfprojects/ symfony propel-build-sql !CRUD雛形の生成 symfony propel-generate-crud !!テストデータ cd /home/sfprojects/askeet/batch php load_data.php !!!バグとかドキュメントの間違いとか !module.ymlからの値の読み込み module.ymlから、設定した値を持ってくるときは、ドキュメントだと以下のように書いてある。 「poll」module以下のconfig/module.ymlに下記のように値を設定する。 all: .settings: max_votes: 150 $max_votes_parameter = sfConfig::get('mod_max_votes'); 正解は「mod_」+「モジュール名_」+「変数名」でした。 $max_votes_parameter = sfConfig::get('mod_poll_max_votes'); アプリケーションレベルのConfigのときは以下のとおり。 echo sfConfig::get('app_nanika');