fuelの勉強めも

1. クックインストール

```
$ curl get.fuelphp.com/oil | sh
$ Token(hide):
```

*もしインストール中、githubのurlでた場合
そのurlでアクセスして、gitアカウントでログイン
アクセスkeyの取得、そして、そこに貼り付けて
インストールが進められる*

### 手動インストール

```
$ git clone git://github.com/fuel/fuel.git
$ php composer.phar self-update
$ php composer.phar update
$ php oil r install
```

2. プロジェクト作成する
`$ oil create test`

3. timezoneの設定
/etc/php.ini
`date.timezone = 'Asia/Tokyo'`

4. インストールできたかどうかの確認
'test'というプロジェクトを作った場合、下記のURLでアクセスするとFuelPHPのWELCOME画面が表示される。
http://localhost/test/public/

### .htaccessうまくいかないときのチェック
/etc/httpd/conf/httpd.conf中
AllowOverride ALLになってるか

もしfuelの本体とpublic場所違うの場合
例えば、publicはDocumentRootで
fuelは/home/usernameにある
core.phpのパス設定

また
シンボリックリンクで/var/www/htmlとpublic
`ln -s /home/username/test/public /var/www/html`
これもうまくいかない場合は
fuelのディレクトリの.htaccessの設定のチェック

### パッケージの利用
```lang:core.php
'always_load' => array(
    'packages' => array(
        'orm',
    ),
),
```
### DBの設定
デフォルトはdevelopmentモード
うまくいかない場合

*localhost to 127.0.0.1*

```lang:/development/db.php
return array(
        'default' => array(
                'connection'  => array(
                        'dsn'        => 'mysql:host=localhost;dbname=fuel_dev',
                        'username'   => 'id',
                        'password'   => 'pw',
                ),
        ),
);
```

### oilの使い方もろもろ
主に使うのは
oil g(generate) #コードの生成
oil refine [taskname]     #タスクの実行

oil g(cakeのbake)controller,model,viewで自動生成
```
$ php oil g scaffold fuel_test title:string body:text
        Creating migration: /home/vagrant/fuel/test/fuel/app/migrations/001_create_fuel_tests.php
        Creating model: /home/vagrant/fuel/test/fuel/app/classes/model/fuel/test.php
        Creating controller: /home/vagrant/fuel/test/fuel/app/classes/controller/fuel/test.php
        Creating view: /home/vagrant/fuel/test/fuel/app/views/fuel/test/index.php
        Creating view: /home/vagrant/fuel/test/fuel/app/views/fuel/test/view.php
        Creating view: /home/vagrant/fuel/test/fuel/app/views/fuel/test/create.php
        Creating view: /home/vagrant/fuel/test/fuel/app/views/fuel/test/edit.php
        Creating view: /home/vagrant/fuel/test/fuel/app/views/fuel/test/_form.php
```

tbl fuel_test
その中に自動でid(PK,AI),created_at,updated_at追加されました。

oil refine migrateでdbの中にテーブルfuel_testの作成

`$ php oil refine migrate`

### index.phpをURLから消す

次に fuel/app/config/config.php を下記のように編集します。

```lang:config.php
//'index_file'  => 'index.php',
  'index_file'  => false,
```
これだけの設定でダメの場合は、
下記のリンクを参考して、public/.htaccessの修正行ってください。
[参照先](http://sygnas.jp/2012/04/19/fuelphpurl%E3%81%8B%E3%82%89%E3%80%8Cindex-php%E3%80%8D%E3%82%92%E6%B6%88%E3%81%99/)

### 作成したのページのアクセス

http://localhost/public/fuel/test/


### simple,ormauth
auth用テーブルの作成
`oil refine migrate --packages=auth`
[ormauth](http://mkimakima.hatenablog.com/entry/20141117/1416228799)

### oilメモ(admin付きの作り方)
- authパッケージとsimpleauthドライブを使う場合

Contorller => C
View => V
Model => M
```
$php oil g scaffold post title:varchar[長さ] body:varchar[長さ](フロントの作成)
$php oil g admin post title:varchar body:varchar --sikp(フロントに対する管理画面の作成)
```

#####2015.12.04追記

column:type[length]:default:hoge:unique:null
カラム名:タイプ[長さ]:デフォルト:値:unique:null
カラム名:string => varchar[255] 同様
カラム名:int => int(11)　同様

構成は
app/classess/controller/posts/  #フロント
app/classess/controller/admin/posts/ #管理画面
[--skip]つけないと、エラーが発生する
post.phpのモデルファイルは同一ファイルを使ってます。

後はフロントが側に必要ないactionの削除
例えば：action_indexとaction_viewのみを残してる
その以外のcreate,edit,deleteのCとVを削除してもかまわない

#####既存テーブルから scaffold
`$oil r fromdb:scaffold posts`

### fuelとajaxのメモ
ajaxで非同期通信を行うとき、
before内でset_global()を書かれた場合は
500エラーが発生することがあります。

>[参照](http://w.builwing.info/2012/02/24/fuelphp%E3%81%AEoil%E3%81%A7%E7%B0%A1%E5%8D%98%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E4%BD%9C%E6%88%90/)
>[auth](http://blog.hrendoh.com/how-to-use-fuelphp-admin-scaffolding/)
>[auth2](http://fuweb.info/220)
>[fuelphpのauthパッケージ](http://w.builwing.info/2012/06/15/fuelphp%E3%81%AEauth%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8/)