PHP デバッグ方法(XAMPP/Eclipse/Xdebug)

Xdebugモジュール

ダウンロード

phpinfo()を出力


https://xdebug.org/wizard.php
のテキストエリアにphp_info()の出力結果を貼り付け


「Analyse my phpinfo() output」ボタン押下


分析されたモジュールをダウンロード
例:php_xdebug-2.6.1-7.2-vc15.dll

保存

C:\xampp\php\ext\
に保存

XAMPP

読み込み

C:\xampp\php\php.ini
に以下を追加

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="C:\xampp\tmp"

Eclipse

デバッグの構成

サーバータブ

「PHP Webアプリケーション」をダブルクリック
名前を保存可能

ファイル:デバッグ対象のファイルを選択
URL:CakePHPの場合、URLが実ファイルと変更されるのでブラウザに表示されるURLを入力

サーバー:構成
ベースURL:ポート番号等変更がある場合

デバッガータブ


デバッカー:XDebugを選択

PHP Smarty

設定

ライブラリ

https://www.smarty.net/

配置

ライブラリ
smarty-X.X.X
 └demo
 └libs
  └Smarty.class.php
  └他
コンパイルファイル配置場所
compile
テンプレートファイル配置場所
template
 └test.tpl

テンプレート

※test.tpl
<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>~</title>
</head>
<body>
 埋め込み用変数
 <p>{$val1}</p>
 <p>{$val2}</p>
</body>
</html>

テンプレート利用

※~.php
<?php
require_once '~/smarty-X.X.X/libs/Smarty.class.php';

$smarty = new Smarty();
テンプレートファイル配置場所指定
$smarty->template_dir = '~/template';
コンパイルファイル配置場所指定
$smarty->compile_dir = '~/compile';

テンプレートファイルの変数へ値を埋め込み
$smarty->assign('val1', 999);
$smarty->assign('val2', 'aaa');
描画
$smarty->display('test.tpl');

PHP Composer

Composerとは

PHP用パッケージ管理アプリケーション
プロジェクト、ディレクトリ単位でコマンドラインからライブラリ等をインストールでき、
インストールされたクラスはrequire/include無しで利用が可能

インストール

curl -sS https://getcomposer.org/installer | php

実行確認
./composer.phar

公式サイト
https://getcomposer.org/Composer-Setup.exe
からインストーラをダウンロードして実行

コマンド

一覧

コマンド 内容
composer バージョン確認
composer self-update composerの更新
composer install ライブラリインストール
composer update ライブラリ追加/削除
composer show -i ライブラリ情報表示
composer init composer.json作成
composer create-project プロジェクト作成

composer install

※composer.json
{
 "require": {
  "guzzlehttp/guzzle": "4.0.*@dev"
 }
}

結果
ComposerTest
└composer.json
└composer.lock
└vendor
 └autoload.php
 └composer
 └guzzlehttp
 └composer
  └autoload_classmap.php
  └autoload_files.php
  └autoload_namespaces.php
  └autoload_psr4.php
  └autoload_real.php
  └autoload_static.php
  └ClassLoader.php
  └installed.json
  └LICENSE
 └guzzlehttp
  └~

利用方法
<?php
require_once("vendor/autoload.php");

$client = new GuzzleHttp\Client();
$res = $client->get('http://rss.rssad.jp/rss/codezine/new/20/index.xml');
echo $res->getBody();

composer create-project

composer create-project --prefer-dist プロジェクト名

例:cakephp
composer create-project --prefer-dist cakephp/app cakephptest

PHP 重要用語

PEAR

PHP Extension and Application Repository
PHP標準のライブラリリポジトリ
PerlでいうCPAN
コマンドラインからネットワーク経由でライブラリをインストールできる
実行にはRoot権限が必要
依存関係を解消するComposerの様な機能は無い
ComposerからPEARライブラリをインストールする事もできる

Composer

PHP Composer」参照