PDTで常にデバッグが起動されてうざかった

いつも愛用させていただいている MargeDoc ProjectさんのPleiades All in One Eclipse(Eclipse 2019-09)環境を新規に構築
PDTを起動した状態でPHPが動くたびにデバッグパースペクティブが開き、最初の行でブレイクしてくれてうざかった

なんでかな~?っと思って調べてみたら
php.iniの設定が

xdebug.remote_autostart = 1

になっていて、この設定だとデバッガーが勝手に起動してくれるんだそう
ある意味便利なんだけど、けっこううざいのでOFFにします

xdebug.remote_autostart = off

ってすればOK

ブラウザで横に入る謎の白線は高さの丸めだった

web制作で画像と画像の切れ間に原因不明の白い線が入ることがある

border、padding、marginや、要素の何かが押して隙間ができてしまっているんじゃないかといろいろ調べても原因がわからないことがしばしば
いまさらながら気付いたんですけど、この白線は「高さの少数を丸めた結果にできる空地」でした。

heightに割合(%やvh)の指定をすると少数で指定されますが
ディスプレーはpixcel単位で発色するので整数で出力することになります。

結果として、たまに上部要素の下に1px分の空白地帯ができてしまうようで、
コーディングミスではなく、ブラウザやモニタの仕様ってことになります。

っとはいえ、デザイナさんとしてはメッチャ気になる部分だと思います。
どうしても!っという場合はjavascriptなどで高さを整数にしてあげれば線が消えるみたいです。

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にca証明書を設定

参考:http://nanoappli.com/blog/archives/7992

composer.pharやらsymfony.pharでcurlするときに次のようなエラーが出たときの対処法

cURL error 60: SSL certificate problem: unable to get local issuer certificate

内容的には信頼できるca証明の一覧が無いぞ~!ってことらしい

cacert.pemをダウンロードして、phpのディレクトリ放り込む
php.iniのcurlセクションの「curl.cainfo」にcacert.pemのフルパスを指定する。

[curl]
curl.cainfo = "[PHP_ROOT]cacert.pem"

※私みたいにプロジェクトごとにxammp環境作ってるようなら共通で使いまわす方が楽かも

PS.
念のためcreate.pemについて提供元を確認してみた。
WindowsでCURLでCURLコマンドを落としたとこでした。

pemの内容については
https://curl.haxx.se/docs/caextract.html
で確認できる。

色々あるsymfony2のインストール方法

色々調べてみたところホントに色々な入れ方やらパッケージ?があるみたいなのでとりあえず整理します。

composerを使ったやり方

php composer.phar create-project [パッケージ] [インストール先のpath] [バージョン]

例)php composer.phar create-project symfony/framework-standard-edition /path/to/webroot/Symfony 2.3.0

php composer.phar search [文字列] 

で探してみたけど数が多すぎると全部は出してくれないっぽいので

[パッケージ]と[バージョン]はPagkagistで探す方がいいらしい。

ちなみに、composerはcomposer.jsonってファイルでパッケージ等を設定して

php composer.phar install

ってする方法もあるようで、むしろこっちが一般的?

symphony.pharを使ったやり方

php -r "readfile('https://symfony.com/installer');" > symfony.phar
php symfony.phar [コマンド] [インストール先のpath] [バージョン]

例)
php symfony.phar new symfony2 2.3.0
php symfony.phar demo symfony2 2.3.0

newとdemoの違いはよくわからない。。。

helpを見るには

php symfony.phar

「PATHを通す」ってどゆこと?

PATHっていうのはファイルパスを指す略称でもあるのですが、
「PATHを通す」という風に言う場合は主に環境変数の事を指します。

コマンドプロンプトを開いて

path

を実行するとディレクトリのパスがいっぱい出てくると思います。

「;」セミコロンはフォルダとフォルダの区切り文字「ディレクトリセパレータ」を意味しています。

前の方からいくつかを抜き出して整理すると
C:\WINDOWS
C:\WINDOWS\system32
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\

ってなってます。
このフォルダが何やねん!って話なんですけど。

「このフォルダの中にあるファイルはカレントにあるものとして扱いますよ。」って意味で、フルパスで指定しなくてもアクセスすることが出来るようになってます。

例えばメモ帳(notepad.exe)を開いてみましょう。

まず、カレントが「c:\Winows」だったとして、カレントにnotepad.exeがないことを確認しました。

c:\Windows>dir notepad.exe

カレントにnotepad.exeがないのですが

c:\Windows>notepad.exe

という風にメモ帳を実行するとちゃんと開いてくれます。

notepad.exeのフルパスは「c:\Windows\system32\notepad.exe」です。

本来はカレントが合ってないのでnotepad.exeは実行できないのですが、
コンピュータはpathに設定されてるフォルダの中もカレントとして扱うので、
C:\WINDOWS;
C:\WINDOWS\system32;
C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
これらのフォルダを上から順に探していくんです。

そして2番目に「C:\WINDOWS\system32」があるので、この中から見つけ出してnotepad.exeを実行してくれました。
この仕組みを「pathが通ってる」と言います。

じゃぁ、「pathを通す」ってどうしたらいいのか。
方法は大きく3つ。

1.環境変数「path」に目的のファイルのディレクトリパスを追加する。
2.目的のディレクトリをカレントにする。
3.相対パス、絶対パスで目的のファイルを指定する

環境変数「path」に目的のファイルのディレクトリパスを追加する

set path=[目的のディレクトリパス];%path%

ってすればOKです。

path

で追加されたかどうか確認しましょう。

常にそのフォルダをpathに追加したい場合は環境変数の設定でpathを追記しましょう

目的のディレクトリをカレントにする

c:\Windows > cd system32
c:\Windows\system32 > notepad.exe

相対パス、絶対パスで目的のファイルを指定する

■絶対パスで指定

c:\Windows > c:\widnows\system32\notepad.exe

■相対パスで指定

c:\Windows > system32\notepad.exe

とか

c:\Windows > ./system32\notepad.exe

このパスが通ってないとインストールしたのに「○○ファイルが見つかりません」とか文句を言われます。

カレント(Current)

カレントとかカレントパスって呼ばれるものがあります。

今居るフォルダの事を「カレントディレクトリ」って言って、このディレクトリのパスを「カレントパス」
って言います。


↑この「c:\Windows\System32」の部分が今いるフォルダ(ディレクトリ)です。

エクスプローラで表現すると

こういうこと