composerの概要

composerはPHPにおけるパッケージ管理ツールです。

類似のツールとして
LinuxのYum
PHPのpear
NodeJSのnpm
があげられます。

リポジトリと呼ばれるパッケージが登録されたサーバから、パッケージのダウンロード・インストールを行ってくれます。
また、ダウンロードしたパッケージに必要な依存パッケージも一緒に落としてくれるなど環境作成を楽にしてくれるツールです。

◆composerのインストール(Windows+Xampp環境)
PHPへのpathが通っているコマンドプロンプト(PowerShell)で次のコマンドを実行します。
※composer.pharがphp.exeに依存しているので「xampp\php」で操作するとpathを通しやすくて良いんじゃないかと。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

正常に終了すると
カレントにcomposer.pharが作成されます。

composer.pharはcomposer本体で、PHPプログラムをphar圧縮したものです。
使用する際は

php composer.phar [コマンド]

のように使います

◆composer-setup.phpやcomposer.pharについて
composer-setup.phpがやってることはcomposer.pharをダウンロードしてるだけ。
そしてcomposer.pharは独立したPHPプログラムなのでコピペして好きなところに置いていいっぽい。

もっと言えば、composer.pharがあればわざわざインストールしなくてもcomposer.pharをコピペして使って問題なさそうですね

◆composer.pharを使いやすく(linuxっぽく)
composer.pharをダウンロードして設置しただけだと、composerを実行する際に

php composer.phar [コマンド]

のように書く必要があります。

Linux環境では

composer [コマンド]

で実行できるため、いろいろなサイトで学習するにあたって読み替えが必要になったりしますし、このほうが入力が少なくて便利ですよね。

これを実現する設定をしていきたいと思います。
composer.pharを設置したディレクトリに
composer.batを作成し、次の内容をコピーしてください。

@ECHO OFF
php "%~dp0composer.phar" %*

以上です。

動作確認のために次のコマンドを実行してみてください。

composer -V

composerのバージョンが表示されればOKです。

◆composer.batを理解する

composer.batを準備すると、なぜ

composer [コマンド]

とすることができるのか?を解説してきます。

まず、コマンドプロンプトの挙動として
実行可能ファイルの拡張子(.exe,.com,.batなど)は省略できる。
っという性質があります。

なので、コマンドプロンプトに記述する「composer」とは「composer.bat」を意味します。

composer.batの中の意味は
「%~dp0composer.phar」とはcomposer.batがあるディレクトリのcomposer.phar
「%*」は、composer.batに渡されたパラメータを意味します。

php.exeでcomposer.pharを実行し、comoper.batに渡された引数を丸投げしてます。

composer -V
を実行すると次のように変換されるわけですね
php c:\xampp\php\composer.phar -V

XAMPPのPHPをバージョンアップ(5.6→7.3)

XAMPPのPHPをバージョンアップする(5.5→7.2)を参考にさせていただきました。

変更の目的

うちの環境はmargedocさんのPDT(full)で、PDTとxampp(インストール不要zip版)が抱き合わせになってるやつを使ってます。
執筆時点の最新版でバンドルされてるPHPのバージョンが5.6系だったのですが、EC-CUBE4の実行環境を作りたくて、PHP7.3系にしたかった。

概要

  1. PHP7.3のダウンロード
  2. PHP7.3の導入
  3. xamppの設定ファイル調整
  4. xdebugの更新

詳細

PHP7.3のダウンロード

PHPの公式ダウンロードページから任意のバージョンをダウンロードします。
うちの環境(xampp)は64bitなのでVC15 x64 Thread Safe をダウンロード
もし、XAMPPの32bit版を利用している場合はVC15 x86 Thread Safe をダウンロードしてください。

PHP7.3の導入

xampp/phpを適当な名前に変更
※今回は元のバージョンにちなんでphp_56

ダウンロードしたPHPを解凍してフォルダ名を”php”に変更しxamppフォルダに移動

php_56フォルダからphp.iniをphpフォルダにコピー

xamppの設定ファイル調整

この作業をせずにxamppを起動しようとするとapacheがこけるので気づくと思うけど
xampp/apache/conf/extra/httpd-xampp.conf
の設定がphp5用になってるので修正が必要

#LoadFile "[プロジェクトのパス]/xampp/php/php5ts.dll"
LoadFile "[プロジェクトのパス]/xampp/php/php7ts.dll"
#LoadModule php5_module "[プロジェクトのパス]/xampp/php/php5apache2_4.dll"
LoadModule php7_module "[プロジェクトのパス]/xampp/php/php7apache2_4.dll"

モジュール名をここで変えてしまったので

#<IfModule php5_module>
<IfModule php7_module>

※複数あり

のように修正

xdebugのダウンロード

PHPのバージョンが変わったのでxdebugもバージョンアップする必要があります

xdebug公式から任意のバージョンのdllを落とします。
※今回はphp7.3系で VC15 TSのx64なのでPHP 7.3 VC15 TS (64 bit) をダウンロード

ダウンロードしたファイルをphp_xdebug.dllにリネームして”xampp/php/ext/”配下にコピー

xampp環境でEC-CUBE3開発を少し楽にするコマンドプロンプト起動バッチ

EC-CUBE3ってややこしや(笑

composerや各種ジェネレータの利用などなんだかんだとコマンドプロンプトを使う機会が多いのですが、
xampp環境(zip版)だとpathが通ってないので色々面倒

っということでバッチを作りました。

cmd /k set path=%~dp0xampp\php;%path%

cmd /k
この部分でバッチが勝手に閉じられないように対処

set path=%~dp0xampp\php;%path%
ここでpathを通す作業

set
コマンドプロンプトで環境変数を設定するためのコマンド

set path=
これでPATHを設定しますよ~って意味

%~dp0
これで今いるディレクトリパスが取れるらしくて最後にディレクトリセパレータが入ってます。
例) c:\windows\

xampp\php
ここはバッチを置いたディレクトリからphp.exeまでのPATHですね

;
PATHセパレータ

%path%
「既に登録されてるPATH」=環境変数のを参照する。

つまり
set path=[xampp/phpまでのフルパス];%path%

をしてるってこと。

mysqlにもPATHを通すなら

cmd /k set path=%~dp0xampp\php;%~dp0xampp\mysql\bin;%path%

はじめてのXAMPP for PDT-All-In-One

これまでWAMP環境を自前で準備していたので実はXAMPPって使ったことなかったんですよね。
ちょっと触れる機会があったので、試しに弄ってみることにしました。

PDT-All-In-One添付のXAMPPをセットアップしてみたでセットアップした後、xampp_start.exeでXAMPPを実行。ブラウザでlocalhostにアクセスしてみると、XAMPPの管理画面?が表示されました。

[XAMPP_ROOT]/htdocsの中身はこうなってました。

なるほど。。。htdocsにファイルを放り込んで使ってもらってもいいけど、最初は管理画面見てね。ってスタンスなんですねー
そのわりにapacheデフォルトのindex.htmlは残してるんだ。。。なんでだろ~?
これだけ色々置かれていると、初心者の方はhtdocs_rootを使ってよいものかどうか悩んじゃわないんでしょうか?(^^;

PDT-All-In-One添付のXAMPPをセットアップしてみた

xampp_start.exeを実行すると、なにやらdocumentRootを設定しろ!ってエラーになった。

よくよく見てみたらsetup_xampp.batがあったので実行してみる。
コマンドプロンプトが開いて、何やら「キーを押せ」との催促にしたがってテキトーに押しちゃうと画面が消えた。。。

何したのかわかんなかったので、バッチをエディタで開いてみると、懐かしいdosコマンドのバッチが表示されます!懐かしぃですねw


@ECHO OFF

if "%1" == "sfx" (
    cd xampp
)
if exist php\php.exe GOTO Normal
if not exist php\php.exe GOTO Abort

:Abort
echo Sorry ... cannot find php cli!
echo Must abort these process!
pause
GOTO END

:Normal
set PHP_BIN=php\php.exe
set CONFIG_PHP=install\install.php
%PHP_BIN% -n -d output_buffering=0 %CONFIG_PHP%
GOTO END

:END
pause

だそうな、要はPHPで各種設定をしてるわけですね。

install.phpの内容は長くなるからやめときますw

ざっくり読んでみたら、pathの設定とかapapcheのhttpd.confの設定、mysql系の設定なんかもやってました。
xamppの場所を変えたらこのsetup_xampp.batを実行してねって事です。