目次

内容

資料

インストール

PEARを使う場合

# pear upgrade PEAR
# pear channel-discover pear.symfony-project.com
# pear install symfony/symfony
  • バージョン番号をつけないと1.4がインストールされる

httpdの設定(VirtualHostを使った場合)

<VirtualHost *:80>
    ServerAdmin admin@servername
    DocumentRoot /home/symfony-apps/<<プロジェクト名>>/web/
    ServerName <<プロジェクト名>>.<<サーバ名>>
    ErrorLog /home/symfony-apps/<<プロジェクト名>>/log/httpd_error.log
    CustomLog /home/symfony-apps/<<プロジェクト名>>/log/httpd_access.log common
    <Directory "/home/symfony-apps/<<プロジェクト名>>/web">
        AllowOverride All
        Allow from All
    </Directory>
    # Symfony Defalut Pages:
    Alias /sf /usr/local/lib/php/data/symfony/web/sf
    <Directory "/usr/local/lib/php/data/symfony/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>
  • 上記で指定したホスト名をDNSもしくはWindowsのhostsファイルに記述する

アプリ作成

プロジェクトの作成

# mkdir /path/to/sf_prj
# cd /path/to/sf_prj
# symfony generate:project projname

アプリの作成

# cd /path/to/sf_prj
# ./symfony generate:app newapp

設定情報の取得

symfony変数の取得方法

sfConfig::get('sf_app_module_dir');

インタラクティブ

POST情報の取得方法

$str = $request->getParameter("field_name");

出力の制御

JSON形式で返す

$result = array( array("bb" => "bb" ) );
$response->setHttpHeader('Content-type', 'application/json');
return $this->renderText(json_encode( $result ) );

JSやCSSを追加

### templateの場合
sfContext::getInstance()->getResponse()->addJavascript('/dummy.js');
sfContext::getInstance()->getResponse()->addStylesheet('/dummy.css');
 or
<?php use_stylesheet('mystyle2') ?>
### actionの場合
$this->getResponse()->addJavascript('/dummy.js');
$this->getResponse()->addStylesheet('/dummy.css');

PHPのエラー出力を抑制

dev:
  .settings:
    error_reporting:  0

モデル

モデルの作成

  • config/doctrine/schema.ymlの作成
  • DBの登録
    symfony configure:database "sqlite:/path/to/database.db"
  • モデルの作成
    symfony doctrine:build --model
  • SQLの生成
    symfony doctrine:build-sql

ビュー

別のテンプレートファイルを利用する

$this->setTemplate('home'); // hogeSuccess.phpが呼ばれる

プルダウンメニューの生成(sfWidgetFormを使う場合)

新しいsymfonyではformヘルパーが使えないのでsfWidgetFormを使う

<?php
$select = new sfWidgetFormSelect(
    array(
        "choices" => array(
            "1" => "アイテム1",
            "2" => "アイテム2",
            "3" => "アイテム3",
        )
    )
);
echo $select->render("select_menu_name", 2);
?>
  • renderメソッドの2番目の引数で選択された値を指定できる

デバッグツールバーを出さない

sfConfig::set('sf_web_debug', false)
  • actionから上記を実行

ユーティリティ

YAMLの読み込み

$yaml = new sfYaml();
$result = $yaml->load( "test.yml" );
print_r( $result );

ルーティング

URLからmoduleとactionを指定

admin_siclist:
  url: /admin/siclist.js
  param: { module: admin, action: sicList }

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-09-25 (日) 19:27:03 (446d)