6
8

More than 5 years have passed since last update.

FuelPHPでScaffoldingを動作させるまでのStep

Last updated at Posted at 2014-11-12

このドキュメントについて

FuelPHPをインストール、Scaffoldingを動作させるまでのステップをかいています。

Step1_環境・インストール

動作環境

MacOSX
PHP 5.4.30 (cli) (built: Jul 29 2014 23:43:29)
FuelPHP 1.7.2

phpとしての設定

php.iniに以下は必須です


sudo cp /private/etc/php.ini.default /private/etc/php.ini
date.timezone = Asia/Tokyo

ディレクトリ構成

~/fuelphp-1.7.2
% tree -L 2                                                                     [5:41:29]
.
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── TESTING.md
├── composer.json
├── composer.lock
├── composer.phar
├── docs
│   ├── assets
│   ├── classes
│   ├── contribute.html
│   ├── credits.html
│   ├── favicon.ico
│   ├── favicon.png
│   ├── general
│   ├── index.html
│   ├── installation
│   ├── license.html
│   ├── packages
│   ├── requirements.html
│   ├── templates
│   ├── toc.html
│   └── vendor
├── fuel
│   ├── app
│   ├── core
│   ├── packages
│   └── vendor
├── oil
└── public
    ├── assets
    ├── favicon.ico
    ├── index.php
    └── web.config

FuelPHPのインストール

fuel本体

zipダウンロードして解凍

composer

★部分を追記してから、php composer.phar install

    "require": {
        "php": ">=5.3.3",
        "composer/installers": "~1.0",
                "monolog/monolog": "1.5.*",
                "fuelphp/upload": "2.0.*",
                "michelf/php-markdown": "1.4.*"
    },

fuel/vendorのパッケージの管理がされていないため。
上記を追記しないと、以下のようなエラーがでます。

Fatal error: Class 'Monolog\Logger' not found in /path/to/fuel/core/classes/log.php 

ディレクトリのpermission変更

php oil refine install

Apacheの設定

.htaccessは使わず、httpd.confに.htaccessの内容を転記


DocumentRoot "/Users/hoge/fuelphp-1.7.2/public"

<Directory "/Users/hoge/fuelphp-1.7.2/public">

RewriteEngine on
RewriteCond %{HTTP:X-Requested-With}   !^XMLHttpRequest$
RewriteCond %{THE_REQUEST}             ^[^/]*/index\.php [NC]
RewriteRule ^index\.php(.*)$           $1 [R=301,NS,L]

# Send request via index.php if not a real file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


RewriteRule ^(.*)$ index.php/$1 [L]

MySQLの設定

  • MySQL:5.6.21

Macにインストールした場合、以下のディレクトリになっているので、エイリアスの設定などは適宜行っておくと便利


%/usr/local/mysql-5.6.21-osx10.8-x86_64/bin/mysql

rootパスワードの設定と、データベース作成


SET PASSWORD FOR root@localhost=PASSWORD('rootpass');

create database fuel_dev

Step2_Scaffolding

oil generateで必要なコントローラ、モデルを作成する。


% php oil g scaffold post title:string summary:string body:text                   [6:22:05]

    Creating migration: /Users/hoge/fuelphp-1.7.2/fuel/app/migrations/001_create_posts.php
    Creating model: /Users/hoge/fuelphp-1.7.2/fuel/app/classes/model/post.php
    Creating controller: /Users/hoge/fuelphp-1.7.2/fuel/app/classes/controller/post.php
    Creating view: /Users/hoge/fuelphp-1.7.2/fuel/app/views/post/index.php
    Creating view: /Users/hoge/fuelphp-1.7.2/fuel/app/views/post/view.php
    Creating view: /Users/hoge/fuelphp-1.7.2/fuel/app/views/post/create.php
    Creating view: /Users/hoge/fuelphp-1.7.2/fuel/app/views/post/edit.php
    Creating view: /Users/hoge/fuelphp-1.7.2/fuel/app/views/post/_form.php
    Creating view: /Users/hoge/fuelphp-1.7.2/fuel/app/views/template.php

Step3_FuelPHP側の設定

db.php

FuelPHPは環境毎に設定ファイルを準備しています。
http://fuelphp.jp/docs/1.6/general/environments.html
そのため、どの環境の設定ファイルを修正しなければならないか、を間違えないようにしましょう。

\Fuel::DEVELOPMENT
開発環境。
\Fuel::TEST
テスト環境。
\Fuel::STAGING
ステージング環境。
\Fuel::PRODUCTION
本番環境。

環境の設定は、サーバ内の環境変数か「 fuel/app/bootstrap.php」に記述されています。

db.phpではソケットファイルをDSNに指定する。


return array(
    'default' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=fuel_dev;unix_socket=/tmp/mysql.sock',
            'username'   => 'root',
            'password'   => 'rootpass',
        ),
    ),
);

指定しなかった場合は以下のエラーとなる


Fuel\Core\Database_Exception [ 2002 ]: SQLSTATE[HY000] [2002] No such file or directory

migrateの実行

マイグレーションとは、データベースのテーブル構造を管理するものです。
マイグレーションを実行することで、作成したモデルをDBに反映させることが可能です。


php oil refine migrate

config.php

ORMパッケージを利用可能にする


   'always_load'  => array(

        /**
         * These packages are loaded on Fuel's startup.
         * You can specify them in the following manner:
         *
         * array('auth'); // This will assume the packages are in PKGPATH
         *
         * // Use this format to specify the path to the package explicitly
         * array(
         *     array('auth' => PKGPATH.'auth/')
         * );
         */
        'packages'  => array(
            'orm',
         ),

crypt.php

crypt.phpをAPPPATH/config/に作成する

The FuelPHP crypto functions require a set of unique and truelly random crypto keys.
These keys are automatically generated and written to the crypto configuration file the first time the application accesses a crypto function.

Please copy the following code into APPPATH/config/crypt.php manually:


<?php
/**
 *  * Part of the Fuel framework.
 *   *
 *   * @package     Fuel
 *   * @version     1.7
 *   * @author      Fuel Development Team
 *   * @license     MIT License
 *   * @copyright   2010 - 2014 Fuel Development Team
 *   * @link        http://fuelphp.com
 *   */

return array (
        'crypto_key' => 'zVoc60BLg87wC20djQXm4zzE',
        'crypto_iv' => 'zAc9uEnqs-NILdAYDchxcfsw',
        'crypto_hmac' => 'liUfLMskYyKEbwEJ-sQaIaoU',
);

Step4_確認

スクリーンショット 2014-11-13 5.57.19.png

おまけ

東洋経済オンラインで「エンジニア夫婦のあるある日記」を連載中です

エンジニア夫婦のあるある日記

あるある日記.jpg

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8