JetBrains IDE Support と Xdebug helper について調べた件

PhpStorm のデバッグでなんとなく必要なのだろうと Chrome に2つの機能拡張をインストールしていたが機能を把握していなかったので,調べてみた.
結果,PhpStorm のデバッグ作業では,Xdebug helper だけでよいようだ.

日本語のPhpStorm 2019.1 ヘルプには以下の記述がある.

IntelliJ IDEAでアプリケーションをデバッグするために、ChromeのJetBrains IDEサポート拡張をインストールして使用する必要はありません。

▼ JetBrains IDE Support 2.0.10

JetBrains Chrome拡張機能を使用したデバッグセッション中、HTML、CSS、およびJavaScriptのライブ編集を使用できます。また、DOM ツリーと実際のページのソースコードを表示することもできます。

▼ Xdebug helper 1.6.1

Xdebugヘルパー拡張
PHP デバッグ接続のリッスンを開始
IDE key 設定などができる.

以前はブックマークレットでIDE key設定を行ったりしていた記憶がありますが,この機能拡張からも出来るのですね.
個人的には少し頭の整理が出来ました.笑

CakePHP のメモ

普段あまり使用しないフレームワークの知識は覚えてられないので,個人的なメモを残しておく.

▼ ページ遷移する方法

ブラウザのURL表記が変更される場合とされない場合があるので,適宜検討する.

1
2
3
<a href="">タグを使用する
$this->redirect( 移動先アドレス );
$this->setAction( アクション名 );

▼ ビルダー

ViewBuilder
QueryBuilder

▼ ヘルパー

・ヘルパーとは,ビューの作成で利用するもの.
・ビューの機能を拡張する仕組み.
面倒な HTML テキストを簡単な呼び出しで自動生成してくれる.
Html Helper
Form Helper
(チェックボックス,ラジオボタン,ドロップダウン,テキストボックスなど)

▼ コンポーネント

・コントローラの機能を拡張するプログラム.
Flashコンポーネント
CSRFコンポーネント
Cookieコンポーネント
Securityコンポーネント
RequestHandlerコンポーネント
Authコンポーネント
・メモ:Auth コンポーネントは,DBのpasswordカラムにハッシュ値をセットしておかないと認証できない.

▼ ビヘイビア

・モデルの機能を拡張するプログラム.

▼ プラグイン

・MVCの全てをパッケージにまとめたもの.
・「plugins」フォルダにコピーすることで利用できる.

▼ レイアウト,エレメント

ビューーテンプレートの組み合わせを定義するのがレイアウト.

エレメントはビューの一部分を共通化して再利用可能にしたもの.
Cake/src/Template/Element/ の .ctp ファイル.

▼ コントローラーなどを生成する方法

テーブルを作成しておき,アプリフォルダで,以下のコマンドを実行することで自動生成できる.
以下の例では books テーブルを作成しておく.

$ php bin/cake.php bake all books

BooksTable クラスが用意される.
また,コントローラーからは,$this->Books で参照することが出来る.

・コントローラ クラスのメンバ変数は public にする.
・コントローラ クラスは,namespace App\Controller; に配置する.

▼ コントローラーからビューに値を渡す方法

コントローラー側で以下の処理を行うと,ビュー側に指定した名前(result)の変数が用意され,値をセットできる.
$this->set(‘result’, $result);

▼ クラス名称について

クラス名称は,キャメル記法にする.
HelloController.php
クラス名は大文字から
メソッドは小文字から

データベースのテーブルは「複数形」
モデルは,「単数形」
テーブルクラスは,「複数形+Table」
エンティティクラスは,「単数形」
ビューテンプレートファイル名は,アクションメソッド名をアンダースコアでつなぐ.
(クラスに関連しないファイルは,アンダースコア記法.)

▼ パス指定について

.ctp でのパスの指定は以下のようにする
HelloController クラスに sendForm メソッドがある場合,

1
<form method="get" action="./hello/sendForm">

▼ 設定ファイル

データベース設定は,Config/app.php に保持されている.

▼ 多言語対応

翻訳ファイルを作成する
$php bin/cake.php i18n

▼ その他

・デフォルトページは,webroot フォルダにある.

リクエスト情報の取得は,以下のようにする.
$str = $this->request->query[‘text1’];

・ショートタグ

1
<?=  は,<?php echo のショートタグ

・スタイルシート
スタイルシートは,webroot/css/cake.hello.css などのように配置する.

・OS の違いを吸収する定数
定数:DIRECTORY_SEPARATOR (ファイルパスの区切り文字)

osx では,ファイルパスの区切り文字は,/ を使用.
namespace は,\ を使用.

PhpStorm の日本語ヘルプを読んでみた件

久しぶりに PhpStorm を使用していて日本語ヘルプの存在を知りました.
英語が得意ではないので,必要最低限の箇所しか読んでいなかったのですが,これを機会にザーと読み流して気になるところをメモしておきます.

▼ 気になる項目

VimエディターとしてPhpStormを使用する
Toolbox Appを使ってPhpStormを管理する

JetBrains ToolboxアプリはJetBrains製品をインストールするための推奨ツールです。
早期アクセス・プログラム(英語)(EAP)リリースを含むさまざまな製品または同じ製品の複数のバージョンをインストールおよび保守し、必要に応じて更新およびロールバックし、ツールを簡単に削除するために使用します。

PhpStormワークショップ資料
コードとパスの自動補完
ソースコードナビゲーション
PhpStormのキーボードショートカットをマスターする

▼ キーボード ショートカット

どこでも検索 PhpStormウィンドウの右上隅にある虫めがねアイコン search_everywhere をクリックするか、Shift を2回押します
基本補完 ⌃Space
宣言に移動 ⌘B
実装に移動 ⌥⌘B
エラーまたは警告間を移動する F2 または ⇧F2
ナビゲーションにフォーカスを移動する ⌘↑
ウィンドウからエディターにフォーカスを切り替える

PhpStorm で JavaScript をデバッグする方法

PhpStorm で JavaScript のデバッグができるとは知っていたが試したことがなかった.
やってみたらとても簡単だったので,設定ポイントをメモしておきます.

▼ 設定ポイント

– Run/Debug Configurations([Run] – [Edit Configurations…] を選択)に JavaScript デバッグ設定ができているか?

JavaScript デバッグ設定ができていれば,エディタの右上のプルダウンリストで選択できる.
ブレークポイントを指定して,デバッグ ボタンを押下すると,ブラウザが起動し,指定行でブレークすることができる.

CakePHPをセットアップするために composer を使用したら遅すぎた件

数年ぶりに composer コマンドを使用したら以下のエラーが出力された.
以前はこのようなエラーが出力されたことがなかったので,手順を再確認したが問題が見つからず困っていたところ,どうやら composer のレスポンスが遅い時があるとのこと.
有志の方がサーバを立てているとのことだったので,そちらを利用させてもらうことでエラーを回避することができた.

▼ エラー内容

The "https://repo.packagist.org/packages.json" file could not be downloaded: failed to open stream: Operation timed out
Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info

▼ PHPライブラリ リポジトリ https://packagist.org のミラーサイト

https://packagist.jp

// enableにする場合
$ composer config -g repos.packagist composer https://packagist.jp

// disableにする場合
$ composer config -g --unset repos.packagist

CakePHPをインストールする方法

ひさしぶりにCakePHPをインストールしたので,手順をメモしておきます.

1. osxにMAMPをインストール

XAMPPを使用する方法もあるが,私にはMAMPを使用した方が簡単だった.
mod_rewrite.soなど使用できる状態か?httpd.confファイルの設定を確認しておく.

2. PHP intlが有効化確認する

php -i | grep intl

有効でないなら,php.iniの設定を確認する.

extension=php_intl.so

3. Composerをインストール

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

パスが通った場所に移動しておく

mv composer.phar /usr/local/bin/composer

コマンドとして認識できているかテスト

composer

4. CakePHPをセットアップする

composer create-project --prefer-dist cakephp/app cake3アプリ名

WordPress 開発の Tips

▼ デバッグモード
– wp-config.php WP_DEBUG 定数を false → true にする.

▼ wordpress のログイン画面
http://サイトのURL/ファイルを配置したディレクトリ/wp-login.php

▼ プラグイン
– wp-content/plugins ディレクトリに配置するとプラグインとして認識される.

▼ コマンドラインから操作
WP-CLI を使用する.
$ brew install wp-cli
$ wp –info

プラグインを有効化する.
$ wp plugin activate my-first-plugin

▼ 動作について
– URL クエリとして与えられたリクエストを基にグローバル変数 $wp_query を作成する.

– テンプレート処理順序: テンプレートのアーカイブページ,フロントページ,個別ページなどそれぞれの 〜.php ファイルを参照して,なければ index.php を参照する.

– 参考: WordPress Codex 日本語版 テンプレート階層

▼ ループ処理について

1
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

コロンを使った記述がよくある.

– 参考: 【PHP】if文の書き方について【波括弧{}、コロン:】

▼ 開発資料
WordPress Codex 日本語版

ローカルマシンに WordPress をインストールする方法

たまに WordPress プラグイン作成やテンプレート作成の調査をしたりするんですが,そのたびに環境構築手順を忘れてしまうので,メモしておきます.

私はローカルに WordPress 開発環境を作る場合以下のものを使用しています.
– MAMP
– WordPress
– PHP Storm

1. MAMP をインストール

まず,最新の MAMP をダウンロードしてインストール.

MAMP 4 以降は以下のメッセージが表示されるようです.
適宜,対処します.
あと,私が遭遇した「MAMP で phpMyAdmin が使用できない」問題についてもメモしておきます.

▼ インストール後に表示されるメッセージ

MAMP / MAMP PRO 4 uses MySQL 5.6 as its default database server. Therefore, existing data has been copied to folders named …/db/mysql56. Your original data will be kept untouched in …/db/mysql.
You should convert the data right after the first start of MySQL using the command 'Upgrade MySQL databases' (⌘⌥U) from the Tools menu.

MAMP / MAMP PRO 4はデフォルトのデータベースサーバーとしてMySQL 5.6を使用します。 したがって、既存のデータは... / db / mysql56という名前のフォルダにコピーされています。 元のデータは... / db / mysqlに変更されません。
「ツール」メニューの「MySQLデータベースのアップグレード」(⌘⌥U)コマンドを使用して、MySQLの最初の起動直後にデータを変換する必要があります。

▼ MAMP で phpMyAdmin が使用できない場合の対処方法
【Tips】「MAMP」でphpMyAdminが表示されない(アクセスできない)ときの解決法!

2. WordPress をインストール

MAMPを使ってローカル環境にWordPressをインストールする方法

最初に WordPress 用のデータベースを MySQL に作成しておきます.
データベース名,ユーザ名,パスワードを指定します.

データベース作成時には「照合順序」を「utf8_general_ci」と指定する.

つぎに WordPress のセットアップを以下の URL にアクセスして行います.
http://localhost:8888/wordpress/wp-admin/setup-config.php

たまに safari ではうまく動かないことがあるそうです.
そのようなときは chrome で試します.

サイトタイトル,ユーザ名,パスワード,メールアドレスを指定します.

MAMP をアンインストールして,再セットアップした話

MySQL が不調だったので,MAMP を AppCleaner でアンインストールして再セットアップしました.

結果,問題なく動作しました.という話.
普段あまり使用しないマシン環境で問題が発生.調査するまでもない場合は,サクッとアンインストールして,再セットアップするのもよいなーと気づきました.(約 10 分で作業完了です)

もちろん MAMP と MAMP Pro の2つを削除対象とします.

▼ テスト環境
macOS Sierra 10.12.6
MAMP 4.2
AppCleaner 3.4

PHP Storm の Xdebug 設定で困ったら確認する点

先日,何度も行っている PHP Storm の Xdebug 設定が行えず,少し調べたのでメモしておきます.

▼ 使用している環境

MAMP バージョン4.1.1 (492)
PHP Version 7.0.15
PhpStorm Version 2017.1.4

PHP Storm にてデバッグが行えない場合,以下の点を確認します.

・PHP Storm にてデバッグの設定がされているか?
・php.ini に xdebug の設定がされているか?
・php.ini の xdebug 設定が適切か?
・xdebug が動作しているか?

PHP Storm のデバッグ設定についてはたくさん情報が公開されているので,あまり間違いはないかと思いますので,ざっと以下の事柄を確認すればよいかと思います.

▼ PHP Storm の PHP Server設定

Preferences > Languages & Frameworks > PHP > Debug
xdebug のデバッグポート番号を確認します.

Preferences > Languages & Frameworks > PHP > Servers
MAMP を使用している場合,正しくポート番号などが設定されているか?確認します.

▼ PHP Storm の リモートデバッグ設定

RUN > Edit Configurations…
Defaults > PHP Remote Debug
一応,こちらも Preferences の設定が反映されているか?確認します.

次に php.ini に xdebug の設定がされているか?確認します.
適用されている php.ini ファイルは環境により異なりますので,phpInfo により確認します.
私の場合,MAMP を使用しているので,MAMP の phpInfo より以下の項目を確認しました.

▼ phpInfo から .ini ファイルを特定する

Loaded Configuration File」項目の設定を参照する.
/Applications/MAMP/bin/php/php7.0.15/conf/php.ini

▼ xdebug 設定

上記の .ini ファイルを開き,[xdebug] セクションを確認します.
問題があった環境では以下のような設定になっていました.
一見問題がないような気がしますが,「xdebug.remote_connect_back」が設定されているとデバッグが行えないことがあるようです.

zend_extension="/Applications/MAMP/bin/php/php7.0.15/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so"
; zend_extension="/usr/libexec/apache2/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.profiler_enable = 1
xdebug.profiler_output_dir="/var/tmp/xdebug"
xdebug.idekey = "PHPSTORM"
xdebug.remote_connect_back = on   // ここが問題だった

remote_connect_back をオフにして動作を確認します.
私の環境では,この設定がオンになっていたためデバッグできなかったようです.

xdebug.remote_connect_back=0
または
xdebug.remote_connect_back=off

xdebug.remote_connect_back は,Xdebug 2.1 から追加された設定で xdebug.remote_host をコメントアウトして,この設定を追加すると,複数のリモート バッグ環境に対応できるとのこと.

▼ ブックマークレットを使わずに,常にデバッグするには

xdebug の設定で,idekey を設定して,remote_autostart をオンにしておけばよいようです.

xdebug.remote_autostart=1

参考:This section describes all available configuration settings available in Xdebug.

設定を変更した際には,サーバの再起動を行います.
再度,phpInfo で xdebug が有効になっているか確認します.

▼ xdebug が動作しているか?

ターミナルを開き,以下のコマンドで確認することができます.

$ lsof -n -P -i :9000

環境によっては,ポート番号: 9000 でデバッグできず,9001 などにされている方もいるようです.

上記の事柄が問題なければ,ツールバーにある「listen php debug connections」をクリックします.
スタートするとアイコンの上部が緑色になるはずです.

では!