symfony という PHP のフレームワークを試す

#### ドキュメント - A Gentle Introduction to symfony
#### http://www.symfony-project.org/gentle-introduction/1_4/ja/

#### ドキュメント - Getting Started with symfony
#### http://www.symfony-project.org/getting-started/1_4/ja/

#### インストール手順
#### http://www.symfony-project.org/installation
#### http://www.symfony-project.org/installation/1_4

#### symfonyPEAR で入れるのは推奨してないみたい
#### (It is not the recommended way of installing symfony,
####  as you should prefer a dedicated installation for each of your projects.
####  Read the Getting Started tutorial for more information.)

#### symfony-1.4.9.zip をダウンロード
#### http://localhost/check_configuration.php
#### extension=php_pdo_mysql.dll を有効にしてみる
#### extension=php_xsl.dll も有効にしてみる
#### posix_isatty() がないのは DOSからしょうがないんだと思う。
#### A PHP accelerator is installed: FAILED って出てる。なんか紛らわしいが要するに PHP accelerator は入ってないという事の模様。

#### PHP accelerator って色々あるみたい
#### http://en.wikipedia.org/wiki/List_of_PHP_accelerators
#### APC から試す

> pear channel-update pecl.php.net
> pear install pecl/APC
WARNING: channel "pecl.php.net" has updated its protocols, use "pear channel-update pecl.php.net" to update
downloading APC-3.1.6.tgz ...
Starting to download APC-3.1.6.tgz (148,835 bytes)
.................................done: 148,835 bytes
49 source files, building
WARNING: php_bin .\php.exe appears to have a suffix .exe, but config variable php_suffix does not match
ERROR: The DSP APC.dsp does not exist.

#### んー?
> pecl config-set php_suffix .exe
downloading APC-3.1.6.tgz ...
Starting to download APC-3.1.6.tgz (148,835 bytes)
.................................done: 148,835 bytes
49 source files, building
ERROR: The DSP APC.dsp does not exist.

#### pear で入れるのが間違いか。
#### http://windows.php.net/download/ ↓
#### http://downloads.php.net/pierre/ ↓
#### http://downloads.php.net/pierre/php_apc-3.1.5-5.2-vc6-x86.zip
#### ってバイナリないのか。APC は諦める。
#### Zend Optimizer を試す
#### http://www.zend.com/en/products/guard/downloads
#### Zend Guard Loader (Runtime for PHP 5.3)でいいんだろうか?
#### php.ini に
; 効いてなさそう
zend_extension=C:\Programs\php-5.3.5-Win32-VC6-x86\ext\ZendLoader.dll
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
#### 書いたけど効いてなさそうなのでパス。
#### とりあえず accelerator はなくてもいいか。パスパス。


#### はじめようガイドに言われた感じにディレクトリを作って放り込む
> php lib\vendor\symfony\data\bin\symfony -V
symfony version 1.4.9 (Y:\Storage\sfprj1\lib\vendor\symfony\lib)

#### とりあえず宜しい。後はガイドにそって進めればいいのかなぁ?


# 近道作成
> copy lib\vendor\symfony\data\bin\symfony.bat .


#### candidates are
#### > symfony generate:project PROJECT_NAME --orm=Doctrine
#### > symfony generate:project PROJECT_NAME --orm=Propel
#### > symfony generate:project PROJECT_NAME --orm=none
> symfony generate:project project1 --orm=Doctrine
>> dir+      Y:\Storage\sfprj1\apps
>> dir+      Y:\Storage\sfprj1\cache
>> dir+      Y:\Storage\sfprj1\config
>> file+     Y:\Storage\sfprj1\config/ProjectConfiguration.class.php
>> file+     Y:\Storage\sfprj1\config/properties.ini
>> file+     Y:\Storage\sfprj1\config/rsync_exclude.txt
>> dir+      Y:\Storage\sfprj1\data
>> dir+      Y:\Storage\sfprj1\data/fixtures
>> file+     Y:\Storage\sfprj1\data/fixtures/fixtures.yml
>> dir+      Y:\Storage\sfprj1\lib/form
>> file+     Y:\Storage\sfprj1\lib/form/BaseForm.class.php
>> dir+      Y:\Storage\sfprj1\log
>> dir+      Y:\Storage\sfprj1\plugins
>> file+     Y:\Storage\sfprj1\symfony
>> dir+      Y:\Storage\sfprj1\test
>> dir+      Y:\Storage\sfprj1\test/bootstrap
>> file+     Y:\Storage\sfprj1\test/bootstrap/functional.php
>> file+     Y:\Storage\sfprj1\test/bootstrap/unit.php
>> dir+      Y:\Storage\sfprj1\test/functional
>> dir+      Y:\Storage\sfprj1\test/unit
>> dir+      Y:\Storage\sfprj1\web
>> file+     Y:\Storage\sfprj1\web/.htaccess
>> dir+      Y:\Storage\sfprj1\web/css
>> file+     Y:\Storage\sfprj1\web/css/main.css
>> dir+      Y:\Storage\sfprj1\web/images
>> dir+      Y:\Storage\sfprj1\web/js
>> file+     Y:\Storage\sfprj1\web/robots.txt
>> dir+      Y:\Storage\sfprj1\web/uploads
>> dir+      Y:\Storage\sfprj1\web/uploads/assets
>> tokens    Y:/Storage/sfprj1/config/ProjectConfiguration.class.php
>> tokens    Y:/Storage/sfprj1/config/properties.ini
>> tokens    Y:/Storage/sfprj1/config/rsync_exclude.txt
>> tokens    Y:/Storage/sfprj1/config/ProjectConfiguration.class.php
>> tokens    Y:/Storage/sfprj1/config/properties.ini
>> tokens    Y:/Storage/sfprj1/config/rsync_exclude.txt
>> tokens    Y:/Storage/sfprj1/lib/form/BaseForm.class.php
>> file+     Y:\Storage\sfprj1\config/databases.yml
>> dir+      Y:\Storage\sfprj1\config/doctrine
>> file+     Y:\Storage\sfprj1\config/doctrine/schema.yml
>> chmod 777 Y:\Storage\sfprj1\web\uploads
>> chmod 777 Y:\Storage\sfprj1\cache
>> chmod 777 Y:\Storage\sfprj1\log
>> chmod 777 Y:\Storage\sfprj1/symfony
>> chmod 777 Y:/Storage/sfprj1/web/uploads/assets
>> tokens    Y:/Storage/sfprj1/config/databases.yml
>> tokens    Y:/Storage/sfprj1/config/doctrine/schema.yml
>> tokens    Y:/Storage/sfprj1/config/ProjectConfiguration.class.php
>> tokens    Y:/Storage/sfprj1/config/properties.ini
>> tokens    Y:/Storage/sfprj1/config/rsync_exclude.txt
>> tokens    Y:/Storage/sfprj1/lib/form/BaseForm.class.php

#### DB を設定する?
> symfony configure:database "mysql:host=localhost;dbname=hogehoge" root honyahonya

#### (フロントエンド)アプリケーションを作成する?
> symfony generate:app --escaping-strategy=on --csrf-secret=HiMITsU frontend
>> dir+      Y:\Storage\sfprj1\apps/frontend\config
>> file+     Y:\Storage\sfprj1\apps/frontend\config/app.yml
>> file+     Y:\Storage\sfprj1\apps/frontend...licationConfiguration.class.php
>> file+     Y:\Storage\sfprj1\apps/frontend\config/cache.yml
>> file+     Y:\Storage\sfprj1\apps/frontend\config/factories.yml
>> file+     Y:\Storage\sfprj1\apps/frontend\config/filters.yml
>> file+     Y:\Storage\sfprj1\apps/frontend\config/routing.yml
>> file+     Y:\Storage\sfprj1\apps/frontend\config/security.yml
>> file+     Y:\Storage\sfprj1\apps/frontend\config/settings.yml
>> file+     Y:\Storage\sfprj1\apps/frontend\config/view.yml
>> dir+      Y:\Storage\sfprj1\apps/frontend\i18n
>> dir+      Y:\Storage\sfprj1\apps/frontend\lib
>> file+     Y:\Storage\sfprj1\apps/frontend\lib/myUser.class.php
>> dir+      Y:\Storage\sfprj1\apps/frontend\modules
>> dir+      Y:\Storage\sfprj1\apps/frontend\templates
>> file+     Y:\Storage\sfprj1\apps/frontend\templates/layout.php
>> tokens    Y:/Storage/sfprj1/apps/frontend/config/settings.yml
>> file+     Y:\Storage\sfprj1\web/index.php
>> file+     Y:\Storage\sfprj1\web/frontend_dev.php
>> tokens    Y:\Storage\sfprj1\web/index.php
>> tokens    Y:\Storage\sfprj1\web/frontend_dev.php
>> rename    Y:\Storage\sfprj1\apps/frontend...frontendConfiguration.class.php
>> tokens    Y:\Storage\sfprj1\apps/frontend...frontendConfiguration.class.php
>> chmod 777 Y:\Storage\sfprj1\web\uploads
>> chmod 777 Y:\Storage\sfprj1\cache
>> chmod 777 Y:\Storage\sfprj1\log
>> chmod 777 Y:\Storage\sfprj1/symfony
>> chmod 777 Y:/Storage/sfprj1/web/uploads/assets
>> dir+      Y:\Storage\sfprj1\test/functional/frontend

#### ガイドによると Y:\Storage\sfprj1\config\ProjectConfiguration.class.php の requrie_once をポータブルに書き直せとあるが、最初からそうなってるっぽい
#### httpd.conf に追記
# Be sure to only have this line once in your configuration
NameVirtualHost 127.0.0.1:8080

# This is the configuration for your project
Listen 127.0.0.1:8080


    DocumentRoot "Y:/Storage/sfprj1/web"
    DirectoryIndex index.php
    
        AllowOverride All
        Allow from All
    
    
    Alias /sf "Y:/Storage/sfprj1/lib/vendor/symfony/data/web/sf"
    
        AllowOverride All
        Allow from All
    
    
    AddHandler application/x-httpd-php .php
    AddDefaultCharset UTF-8


#### apache を restart
#### ブラウザで http://localhost:8080/ を開くと symfony のページが出る。

#### httpd.conf のさっきの変更部分をコメントアウトして下記を追記
# This is the configuration for my symfony project

    ServerName sfprj1.localhost
    
    DocumentRoot "Y:/Storage/sfprj1/web"
    DirectoryIndex index.php
    
        AllowOverride All
        Allow from All
    
    
    Alias /sf "Y:/Storage/sfprj1/lib/vendor/symfony/data/web/sf"
    
        AllowOverride All
        Allow from All
    
    
    AddHandler application/x-httpd-php .php
    AddDefaultCharset UTF-8


> notepad %SYSTEMROOT%\System32\drivers\etc\hosts
# 一行追記(同じIPアドレスの行が複数あっても大丈夫みたい)
127.0.0.1       sfprj1.localhost

#### ブラウザで http://sfprj1.localhost/ を開くと symfony のページが出る。
#### ブラウザで http://sfprj1.localhost/frontend_dev.php/ を開くと右上にデバッグツールバー付きのページが出る。

#### "Getting Started with symfony" ガイドの部分終了。

いかんかった。そのまま書いたら NameVirtualHost の設定書くの忘れてた。httpd.conf に追記

NameVirtualHost 127.0.0.1
 #### 最初の  がデフォルトらしい
    #### ここに今までの設定をコピペ
    ServerName localhost
    
    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
    DirectoryIndex index.html
    
    
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
        
        AddHandler application/x-httpd-php .php
        AddDefaultCharset UTF-8