symfonyメモ

1:Synfonyの設定ファイルについて
  ホームディレクトリ配下の(プロジェクト名)/app/(アプリケーション名)/
      config/setting.yml
     ※ この中のスペースの数(字下げなど)については絶対に変えないこと。
     動作がおかしくなる恐れがある。


2:処理の記述について
    ホームディレクトリ配下の(プロジェクト名)/module/(アプリケーション名)/
     actions/action.class.php内の
  public function execute(任意の名前)内に記述する。
     (普通のphpで作成した場合、index.phpに記述する内容)

     上記のメソッドの名前は必ずexecuteをつけること。
  execute(任意の名前)をつけるときは、
     任意の名前の先頭一文字は必ず大文字にする。

  任意の名前は、
     ホームディレクトリ配下の(プロジェクト名)/module/(アプリケーション名)/
     templates/(テンプレート名.php)の先頭につける名前と一致させる。
    ただし、先頭一文字は小文字とする。

  例として、action.class.php配下にpublic function executeIndexという
     メソッドを作成したら、テンプレート名.phpは、indexSuccess.phpとする。
    (任意の名前を小文字にしたもの)Success.phpとする。Successは固定。

  テンプレート側で文字の表示をさせるときは、actions.class.php配下の
     メソッド内に$this ->を記述する。
  smartyのassignに相当する。記述方法は、$this -> 変数名 = 渡したい値
     とする。

3:シンボリックリンクの設定
  ホームディレクトリ配下の(プロジェクト名)/web/に移動し、
      ln -s コマンドを発行する。
  
  ln -s /usr/share/pear/data/symfony/web/sf ./sf
      sfというシンボリックリンク(puffyの場合は、水色で表示)されていることを
      確認する。
  これを行わないと、エラー画面や、デバックモードにしたときに画面が
      崩れてしまう。
プロジェクトトを作成したら、これを行うことが望ましい。
      やらなくてもsymfonyは動作する。

4:テンプレートの共通部分について
  ホームディレクトリ配下の(プロジェクト名)/(アプリケーション名)/templates/layout.phpに
      記述することが可能。(<head></head>部分<body></body>部分)

  <?php echo $sf_data->getRaw('sf_content') ?>をlayout.phpの<body></body>に
  記述すると、indexSuccess.phpに 書かれた内容が表示される。

  ホームディレクトリ配下の(プロジェクト名)/apps/(アプリケーション名)
      /config/view.ymlにmetaタグなどの
  設定がある。この中で<title></title>などの表示を設定することができる。
    (<head>の内容)
  設定後、プロジェクト名のフォルダ直下へ進み、
     symfony cc(キャッシュクリアー)コマンドを入力すると反映される。
     これを行わないと、キャッシュの関係で修正が反映されないことがあるので
     注意すること。

  
     cssの指定もできる。(stylesheets:    [main , default]) カンマの間は
     半角スペースをひとつ開ける。上記の設定例は、web/cssフォルダ直下の
     main.css,default.cssを見に行くような設定である。

5:symfonyコマンドについて
  symfonyコマンド(symfony ccなど)については、
  プロジェクト直下のフォルダに移動しないと動作しないので注意すること。

6:アクセスについて
  http://(ホスト名)/(アプリケーションのコントローラー名)/
                (モジュール名)/(アクション名)

     例:http://test-enomoto22.com/index.php/default/submit

     ・アプリケーションのコントローラー名は
      symfony init
-app (コントローラー名)で作成した名称
     ・モジュール名は、
   symfony init
-module (アプリケーション名)( モジュール名)で
   作成したもの
  ・アクション名は、
   actions.class.php内のメソッド名のexecuteの後に書かれた文字。

     ホームディレクトリ配下の
     (プロジェクト名)/app/(アプリケーション名)/config/setting.yml内の
              prod:
             .settings:
              no_script_name:           on
   のno_script_nameをonにしているとフロントコントローラー名を
   省略できる。

7:routing.ymlについて
  アクセスのルールをここで指定できる。
  ホームディレクトリ配下の
      (プロジェクト名)/app/(アプリケーション名)/configに存在する。

8:権限を元に戻す
  symfony fix
-permsを実行する。
  たとえば、xampp環境からLinux環境に移行するときなどに使用する。
  これを行わないと、権限が崩れて表示が行われないことがある。

9:デバックモードについて
     (プロジェクト名)/web/(アプリケーション名).php内の以下のように
  修正するとデバックモードになる。
  define('SF_ENVIRONMENT', 'dev');
  define('SF_DEBUG',       true);

10:.htaccessを以下のように修正する。アクセスのしやすさ、
        SEOの観点からやること。

        下記の修正を行うと、http://www.shonanbbs.com/backend.php/
        member/deleteでアクセスしないとならなかったのが、
        http://www.shonanbbs.com/backend/member/deleteでアクセス
       できるようになり、URLの自然さ、SEO的に有利になる。

       . htaccessは一番最初のフロントコントローラーを作成するときに
        作成される。それ以降は、それをコピーして使用する。
        修正点は以下のとおり。

        ・RewriteBase
        ・RewriteRule

   -----------------------------------修正部分--------------------------------
       Options +FollowSymLinks +ExecCGI

       <IfModule mod_rewrite.c>
         RewriteEngine On

          # uncomment the following line, if you are having trouble
          # getting no_script_name to work
          RewriteBase /
 ここのコメントを削除する。

          # we skip all files with .something
          RewriteCond %{REQUEST_URI} \..+$
          RewriteCond %{REQUEST_URI} !\.html$
          RewriteRule .* - [L]

          # we check if the .html version is here (caching)
          RewriteRule ^$ index.html [QSA]
          RewriteRule ^([^.]+)$ $1.html [QSA]
          RewriteCond %{REQUEST_FILENAME} !-f

          # no, so we redirect to our front web controller
          RewriteRule ^(.*)$ /backend/backend.php [QSA,L]
    
/backend/backend.phpの部分を書き換える。
          フロントアプリケーション名から.phpを取り除いたもの/
           フロントアプリケーション名.phpに変更する。
        </IfModule>

        # big crash from our front web controller
        ErrorDocument 500 "<h2>Application error</h2>symfony application failed to start properly"
  
-----------------------------------修正部分終了--------------------------------

11:view.ymlについて
  
(プロジェクト名)/apps/(アプリケーション名)/configに存在する。

       ここで、<head></head>タグ内の記述ができる。
  (<titile>とか、<meta>のdescription、CSSなど)

12:symfonyでmySQLのdatetime型データを格納するときの注意点
   symfonyでdatetime型を指定したテーブルにデータを格納した場合、
   symfomyの仕様上、タイムスタンプで格納される。
   そのため、データを引用するときは、date関数で変換する必要がある。

13:リクエストパラメータの取得
   
$_GET,$_POST両方ともgetRequestParameter()で取得できる。
        $_FILESの値はgetRequest()->getFile("(任意の変数)");の形で取得する。

14:テンプレート側へ変数を受け渡すには?
        $this -> (受け渡す変数名) = (受け渡す変数名にセットする内容)の形で
   編集する。

   テンプレート側では、$(受け渡す変数名)の形で参照する。

       [記述例]
        $this -> nickname = $this -> getRequestParameter("nickname");

   上記の例は、nicknameという変数名をテンプレートに受け渡す例である。
   テンプレート側では$nicknameの形で参照する。


スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

e.swan

Author:e.swan
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR