symfony★事始め
最終更新:
kji-symfony
-
view
とりあえず、sandboxをいじってみました。(2008.01.07)
- 参考にしたのは以下のサイトです。
- symfonyブック 日本語ドキュメント(暫定版)
ここの「symfonyのインストール」でサンドボックスのtarballをダウンロードしました。
ファイルの日付は2007.12.21でした。 - MyFirstSymfonyProjectJapanese
インストール後は、こちらのページを見て、書かれている通りに進み中です。
(最初はこちらからtarballを落としたのですが、2006年のモジュールだったため、うまく動作せずに、数時間ハマりました。)
- symfonyブック 日本語ドキュメント(暫定版)
以下では、つまづいた点などをメモに残しておこうと思います。
- インストール
- MyFirstを見ると、「そして、SQLiteエクステンションも必要です、これはデフォルトのPHP5に含まれています。しかしながら、PHP 5.1.0であれば、手動で php.ini においてエクステンションが有効にする必要があります。 」とサラっと書いてあります。
具体的にはphp.iniの設定が必要で、下記のコメントを外しました。
(677行は自信なかったけど、たぶん必要と勝手に決めた)
631行の「extension=php_pdo.dll」
639行の「extension=php_pdo_sqlite.dll」
646行の「extension=php_sqlite.dll」
677行の「sqlite.assoc_case = 0」
- MyFirstを見ると、「そして、SQLiteエクステンションも必要です、これはデフォルトのPHP5に含まれています。しかしながら、PHP 5.1.0であれば、手動で php.ini においてエクステンションが有効にする必要があります。 」とサラっと書いてあります。
これでCongratulationページが表示されました。
- データモデルの初期化
- schema.ymlは存在していなかったので、WEBのコードをそのままに、ファイルを作成。
- $ php symfony propel-build-modelの実行
sandboxのルートでコマンドプロンプトを開き、コマンドを貼り付けたが、動かず。
PHPフォルダにパスが通っていないのが原因だったので、
「マイコンピュータ」-「プロパティ」-「詳細設定」-「環境変数」の「PATH」を編集して、「c:\php;c:\php\ext」を追加。
(\extを設定していないと、次の段階でまたエラーになるので、ここでついでに設定します)
その後のコマンドも、順番に実行して行くと、指定のアドレスで足場(scaffolding)が完成します。
- 足場で日本語が出ない
- createを押して1レコードを登録。「あああ」とか適当に入れて更新。表示は「??????d???」のように、ほとんど?の文字化け。
ここで1日目終了~~。
文字化け、解消しました。(2008.01.08)
- 文字化けしている状態のページをブラウザの「ソースの表示」で表示させ、文字コードや言語を確認すると、文字コードは「UTF-8」になっているが、言語(languege)が「en」になっていた。
で、言語だけの問題化と思ったが、文字コードの変更も必要だった。
最終的には、下記3ファイルの内容を変更した。- sf_sandbox\apps\frontend\config\settings.ymlに下記を追記(実際には飛び飛びの行のコメントを外して変更。)
all:
.settings:
charset: shift_jis ←「utf-8」から変更 - sf_sandbox\apps\frontend\config\view.ymlの言語「en」を「ja」に変更
metas:
language: ja ←「en」から変更 - sf_sandbox\apps\frontend\templates\layout.phpの「en」→「ja」に変更。
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
↓
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
- sf_sandbox\apps\frontend\config\settings.ymlに下記を追記(実際には飛び飛びの行のコメントを外して変更。)
ひと通り、終了。(2008.01.09)
- 文字化けが解消したので、残りの内容を消化。理解できなくても一定のスピードで進んで行く。基本的にページに書いてあるものをコピペしながら実行して行けば良かったが、最後のセキュリティの部分だけ一部変更した。
「apps/backend/modules/security/actions/actions.class.php」の編集で
return $this->redirect('main/index');
の「'main/index'」の部分がそのままだと、ログイン後にページが見つかりませんエラーになったので、「'/post'」に変更。これでpostの画面が出るようになった。
正しいかどうかは分からないが、これで一通り終了したので、明日はこれをベースに少しいじくって勉強するつもり。
なんか「遅い」気がする・・・全体的にもっさり感があるので、速くする方法も必要だと思う。