PHP8のモダンな書き方チートシートがgithabにあるの見つけたで、
というITコンサルしている海外の人のツイート
・モダンを知ることでレガシーを知れる
The New Life of PHP – The PHP Foundation
・もっとPHPの言語内でパラダイム・シフトが活発になりそう
・レガシーシステムを作っている会社はDOKIDOKI★HETOHETOが待っていそう★★
2021 アドベントカレンダー Laravel
著名なエンジニアによる記事が満載。Laravel の最新情報などもそろっている雰囲気です
JetBrainsがコードエディタの「Fleet」を発表
PHPは実装予定。単純に使ってみたいです。
Appleシリコン対応Docker Desktop、一般提供を開始
M1 Mac不具合が解決していけば最新Mac買いたい。
まだIntel Macの信用度は高い。
PHP: PHP 8.1.0 Release Announcement
新機能については、うちのTechBlogでもまとめられています
PHPerKaigi petit - PHP8.1リリース祝賀会
参加者のアイコンが見たことあるアイコンばかり…
「動的プロパティの禁止」が僅差で可決
ライブラリやら諸々取り込むのは大変そう
ちなみに投票数の2/3が賛成で可決です
.soファイル
を組み込む(php.iniに読み込み設定を追記)ことで有効になるsudo apt-get install php-xdebug
pecl install xdebug
FROM php:8.1-cli
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
docker-php-ext-enable
を記述すると、コンテナ上のPHPでxdebugが有効化される。任意の行で処理を止めながら行うデバッグのこと。
対象のページをリロードすると、ブレークポイントで処理が止まる。
* 次の行へ処理を進める
* 進める行のメソッドがある場合、メソッド内の処理はスキップされる
* メソッド内にブレークポイントがある場合は、そこで止まる
* "強制ステップオーバ" を使うことで、スキップもできる
* メソッド内の処理を調べたい時に利用
* 止まっている行にあるメソッド内の処理に入って先頭処理で止まる
選択した部分の式評価
アイコンから任意の式での評価結果確認も可能
```
xdebug.mode=develop
```
$sampleArray = [
1, // int
0.1, // float
true, // bool
"string", // string
["nest1", ["nest2", ["nest3"]]] // array
];
var_dump($sampleArray);
![]() |
---|
![]() |
---|
php.ini
のhtml_errors
設定が有効のときしかキレイにならないので注意xdebug.var_display_max_depth
xdebug.cli_color
![]() |
---|
xdebug.show_local_vars
xdebug.mode=trace
xdebug.trace_format=0
xdebug.output_dir=/tmp/tracing
xdebug.start_with_request=no
class SampleClass
{
public function a() {
$this->b();
}
private function b() {
var_dump("tracing");
}
}
$sampleClass = new SampleClass();
xdebug_start_trace();
$sampleClass->a();
xdebug_stop_trace();
$sampleClass->a();
xdebug.collect_assignments
xdebug.collect_return
xdebug.trace_format
で出力フォーマットを選択できる
; profile の設定を有効化
xdebug.mode=profile
; profile の出力先
xdebug.output_dir=/tmp/profiling
xdebug.output_dir
で指定したディレクトリにファイルが出力されるtrigger
に設定することで profiling を開始したいタイミングを指定できるProfiling
なのに公式のURLはprofiler
になっているxdebug_start_code_coverage()
と xdebug_stop_code_coverage()
で挟むだけxdebug_get_code_coverage()
を実行することで上記で挟んだ箇所のカバレッジを取得できる <?php
xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
function a($a) {
return;
echo $a * 2.5;
}
function b($count) {
if ($count > 25) {
echo "too much\n";
}
for ($i = 0; $i < $count; $i++) {
a($i + 0.17);
}
}
b(6);
b(10);
var_dump(xdebug_get_code_coverage());
array
'/home/httpd/html/test/xdebug/docs/xdebug_get_code_coverage.php' =>
array (size=11)
5 => int 1
6 => int -2
7 => int -2
10 => int 1
11 => int -1
13 => int 1
14 => int 1
16 => int 1
18 => int 1
19 => int 1
21 => int 1