PHPの新しいフレームワークということでちょっとだけ触ってみました。
。。。なんとか動いたんでメモ程度に。
まず、サイトからバージョン1.2 をダウンロード。
ダウンロードしたファイルを展開してそのままウェブサーバに配置。
(今回はhtdocs > fp-sampleとしました)
とりあえずhttp://localhost/fp-sample/public/index.phpにアクセス。
「You don't have permission to access」と出たんで権限を与えます。
$ chmod 755 fp-sample
再度アクセスすると画面が表示されると思います。
はじめから動くサンプルとしてhttp://localhost/fp-sample/public/index.php/hello/にアクセス。画面に「Hello, World!」が表示されていると思います。
そのままアドレスの後ろに何か適当に文字を入力すると「Hello, <入力文字>」が表示されるようになると思います。
とまぁこんな感じです。
詳細はドキュメントを参考に。(まだ全然わかってないんで。)
もぉひとつ、データベースの接続を試してみました。
まず予めデータベースを作成しておきます。
mysql > create database fp_sample;
fuel > app > config > development > db.php を開いてデータベースの設定を行います。
<?php return array( 'default' => array( 'type' => 'mysql', 'connection' => array( 'hostname' => 'localhost', 'database' => 'fp_sample', 'username' => 'root', 'password' => 'admin', ), ), );
次にoilコマンドを使ってscaffoldでファイルを生成します。
ターミナルを起動してワークスペースに移動、以下を実行します。
$ oil generate scaffold post title:string summary:varchar[250] body:text
続けて以下を実行
$ oil refine migrate Error: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)
ここでけっこう悩んでしまいました。
mysql.sockですが私の環境では/tmp/mysql.sockにあります。
phpinfo()で見ても/tmp/mysql.sockになってるし適当にfuelphpを使わずmysql_connectを実行すると普通に動くし。。。
悩んだあげく'socket' => '/tmp/mysql.sock'を追加することで実行されました。
<?php return array( 'default' => array( 'type' => 'mysql', 'connection' => array( 'hostname' => 'localhost', 'socket' => '/tmp/mysql.sock', 'database' => 'fp_sample', 'username' => 'root', 'password' => 'admin', ), ), );
これで再度migrateを実行すると成功しました。
$ oil refine migrate Performed migrations for app:default:
----------------------
※kenji_sさんに教えて頂きましたがFuelPHPのトラブルシューティングに載っていました。
Oil がデータベースに接続できないがアプリケーションは接続できる
私の場合は'localhost'を'127.0.0.1'に変えるだけで動作しました。
----------------------
データベースを見るとpostsというテーブルが作成されていることが確認できると思います。
これでhttp://localhost/fp-sample/public/index.php/postにアクセス。
でかでかとエラーがでました。「Class 'Orm\Model' not found」
ormとかいうのを有効にしないとだめみたいです。
fuel > app > config > config.phpを修正します。
'always_load' => array( 'packages' => array( 'orm', ), (省略) ),
もともとコメントアウトさせているのでコメントを外すだけOK。
再度アクセス!
またエラー。「Crypto key error」。。。
よくわかりませんが「Please copy the following code into APPPATH/config/crypt.php manually:」とあるんで下のグレー部分をコピーしてcrypto.phpに貼付けろってかんじでしょう。
書かれてある通り fuel > app > config > crypt.phpを作って貼付け。
もっかいアクセス。
これでやっと画面が表示されました。
なかなか手間取りました。。。
手順が間違ってるのか?
けどとりあえずこれでデータの一覧〜登録、入力チェックまでを一気にやってくれます。
これからちょいちょい触っていきたいと思います。
0 件のコメント:
コメントを投稿