Symfony2のapp/check.phpの環境チェックでエラーや警告が出たときの対処法について

WindowsでSymfony2を導入したときに、app/check.phpの環境チェックでエラーや警告が出たときの対処法ついてまとめました。

Symfony2のapp/check.phpの環境チェックでエラーや警告が出たときの対処法ついてまとめた。

環境

開発環境のバージョンは次の通り

  • Windows 10
  • PHP 5.6.17

PHPは、「C:\php」にインストールした。
php.iniは「php.ini-development」をコピーした。

date.timezone setting must be set

* date.timezone setting must be set
  > Set the "date.timezone" setting in php.ini* (like Europe/Paris).

このエラーが出たときは、「php.ini」の次の行を修正する。
文頭の「;」を削除し、文末に「”Asia/Tokyo”」を追加する。

;date.timezone =
date.timezone = "Asia/Tokyo"

mb_strlen() should be available

* mb_strlen() should be available
  > Install and enable the mbstring extension.

このエラーが出たときは、「php.ini」の次の行を修正する。
文頭の「;」を削除する。

;extension_dir = "ext"
extension_dir = "ext"

;extension=php_mbstring.dll
extension=php_mbstring.dll

次の行を修正する。
文頭の「;」を削除する。

;mbstring.language = Japanese
mbstring.language = Japanese

次の行を修正する。
文頭の「;」を削除し、文末に「UTF-8」を追加する。

;mbstring.internal_encoding =
mbstring.internal_encoding = UTF-8

mbstringの他の設定は省略。

intl extension should be available

* intl extension should be available
  > Install and enable the intl extension (used for validators).

次の行を修正する。
文頭の「;」を削除する。

;extension=php_intl.dll
extension=php_intl.dll

a PHP accelerator should be installed

 * a PHP accelerator should be installed
  > Install and/or enable a PHP accelerator (highly recommended).

次の行を追加する。
パスはPHPのインストール場所に合わせて書き換える。

zend_extension="C:\php\ext\php_opcache.dll"

次の行を修正する。
文頭の「;」を削除し、値を「0」から「1」に書き換える。

;opcache.enable=0
opcache.enable=1

;opcache.enable_cli=0
opcache.enable_cli=1

PDO should have some drivers installed (currently available: none)

* PDO should have some drivers installed (currently available: none)
  > Install PDO drivers (mandatory for Doctrine).

次の行を修正する。
文頭の「;」を削除する。

;extension=php_pdo_mysql.dll
extension=php_pdo_mysql.dll

;extension=php_pdo_sqlite.dll
extension=php_pdo_sqlite.dll

使用するデータベースを有効にする。
ここでは、MySQLとSQLiteを有効にしている。

実行結果

$ php app\check.php

Symfony2 Requirements Checker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> PHP is using the following php.ini file:
  C:\php\php.ini

> Checking Symfony requirements:
  ........................................


 [OK]
 Your system is ready to run Symfony2 projects


Note  The command console could use a different php.ini file
~~~~  than the one used with your web server. To be on the
      safe side, please check the requirements from your web
      server using the web/config.php script.

改行コードを変換するNetBeans用プラグイン

Symfony2のコーディング規約では、改行コードにLF(0x0A)を使用することになっている。
NetBeansには改行コードを設定する方法がないので、次のプラグインを導入した。

Show and change line endings プラグイン

Show and change line endings プラグインは編集中のファイルの改行コードを表示してくれるプラグイン。
改行のコードの変更もできる。

画面右下に編集中のファイルの改行コードが表示され、クリックして改行コードを変更できる。

002

インストールは、メニューの「ツール」→「プラグイン」でプラグイン画面を開く。
「使用可能なプラグイン」タブを選択して、検索欄にプラグイン名「Show and change line endings」を入力する。

001

選択欄のチェックボックスをチェックして、「インストール」ボタンを押すと、インストールできる。

Change Line Endings on Saveプラグイン

Change Line Endings on Save プラグインはファイルを保存するときに改行コードを変換してくれるプラグイン。
ファイルの改行コードが設定した改行コードと異なるとき、設定した改行コードに変換してくれる。

使用方法は、メニューの「ツール」→「オプション」→「エディタ」→「Line Endings」タブを選択して、「Enable adjusting the line endings」をチェックし、改行コードを選択する。

005

インストールは、プラグイン画面で検索しても見つからなかったので、公式サイトからnbmファイルをダウンロードして、プラグイン画面の「ダウンロード済」タブからインストールする。

003

004

参考

NetBeansでSymfony2をインストールする

この記事はNetBeans 7.3とSymfony 2.2.1で動作を確認しました。

NetBeansはSymfony2をサポートしています。
この記事では、NetBeansでSymfony2の設定を行い、新規にSymfony2のプロジェクトを作成する手順を解説します。

  1. NetBeansをインストールする

    NetBeansのダウンロードのページから、PHPをサポートしているNetBeansをダウンロードします。

    NetBeansのダウンロードのページ

    ダウンロードが完了したら、インストーラを実行して、NetBeansをインストールします。

  2. Symfonyをダウンロードする

    Symfonyのダウンロードページから「Symfony Standard 2.2.1 (.zip)」をダウンロードします。

    Symfonyのダウンロードページ

  3. NetBeansのSymfony2の設定を行う

    NetBeansを起動します。

    メニューから「ツール」→「オプション」を選択します。

    「ツール」→「オプション」

    「PHP」→「Symfony2」を選択して、ダウンロードしたZipファイルのパスを設定します。

    「PHP」→「Symfony2」

    「OK」ボタンを押して、設定を登録します。

  4. NetBeansでSymfony2のプロジェクトを作成する

    メニューの「ファイル」→「新規プロジェクト」を選択します。

    「ファイル」→「新規プロジェクト」

    「カテゴリ」から「PHP」を選択して、「プロジェクト」から「PHPアプリケーション」を選択し、「次」ボタンを押します。

    新規プロジェクト

    プロジェクト名とソース・フォルダを設定して、「次」ボタンを押します。

    新規PHPプロジェクト

    プロジェクトURLを設定して、「次」ボタンを押します。

    新規PHPプロジェクト

    PHPフレームワークから「Symfony2 PHP Webフレームワーク」をチェックして、「終了」ボタンを押します。

    PHPフレームワーク

    プロジェクトが作成され、Symfony2が導入されます。

    010

StofDoctrineExtensionsBundleのインストール方法

この記事はSymfony 2.2.1で動作確認をしました。

Gitのインストール

Gitをインストールします。

環境変数を編集してパスを通します。

Composerのインストール

Symfonyのプロジェクトのディレクトリに、次のURLにあるファイルをダウンロードします。

https://getcomposer.org/installer

ダウンロードしたファイルを実行する

php installer

同じフォルダーに「composer.json」「composer.phar」ファイルが作られます。

次のコマンドを実行して、バージョン情報が表示されたら、インストールは成功しました。

php composer.phar --version

StofDoctrineExtensionsBundleのインストール

「composer.json」に次の表を追加します。

"require": {
    "php": ">=5.3.3",
    "symfony/symfony": "2.2.*",
    …
    "stof/doctrine-extensions-bundle": "~1.1@dev",//<=追加
}

次のコマンドを実行すると、StofDoctrineExtensionsBundleがインストールされます。

php composer.phar install

「app/AppKernel.php」を編集して、次の行を追加します。

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
        new Symfony\Bundle\SecurityBundle\SecurityBundle(),
        …
        new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),//<=追加
    );

「app/config/config.yml」を編集して、次の行を追加します。

stof_doctrine_extensions:
    orm:
        default:
            timestampable: true

「app/autoload.php」を編集します。

if (!function_exists('intl_get_error_code')) {
    require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';

    $loader->add('Stof', __DIR__.'/../vendor/bundles');//追加
    $loader->add('Gedmo', __DIR__.'/../vendor/gedmo-doctrine-extensions/lib');//追加
}