ニュースや資料へのリンクを含む新鮮な選択。 リリース:PHP、Laravel 5.8、Xdebug 2.7およびその他のリリースの更新、3つの新しいRFC、2つの承認、およびPHP Internalsの概念、便利なツールの一部など。
素敵な読書を!
ニュースとリリース
- PHP 7.3.3
- PHP 7.2.16
- PHP 7.1.27
- Xdebug 2.7.0-待望のPHP 7.3の完全サポート。
- Drupal Camp Belarus 2019-ミンスク、5月18〜19日。 chilicによって提出されました 。
PHP内部
- [RFC] Saner文字列と数値の比較 -最近のRFCで、Nikita Popovは
==
の動作を変更し、緩い比較でエラーが発生しにくくすることを提案しています。 特に、数値の比較は、比較される文字列が実際に数値である場合にのみ使用することが提案されています。 それ以外の場合、数値は文字列に変換され、文字列が比較されます。
この提案では、比較演算子<=>
!=
>
、==
!=
、>
、>=
、<
、および<=
、switch
構成、in_array()
、sort()
関数の動作を変更する必要があります。
これに応じて、さまざまな程度の過激主義のアイデアがdeclare('strict_comparison=1');
た。特別なフラグdeclare('strict_comparison=1');
導入からdeclare('strict_comparison=1');
、==
をキャンセルする申し出の前に、すべての==
を===
変えます。
それまでの間、比較の結果がPHP 8で予期されていたものと異なる場合、 警告はおそらく7.4をスローします。 - [RFC]数値文字列の末尾の空白を許可する -一貫性を改善するために設計された別の提案ですが、弱めます。 数値行の末尾に空白を許可することを提案します。つまり、
"123 " == " 123"
および他のすべての操作が機能するようになります。 - [RFC]内部関数の一貫した型エラー -提案が受け入れられたため、PHP 8では、間違った型のパラメーターが渡された場合、組み込み関数はTypeErrorをスローし、したがってnullを返しません。
- [RFC]弱い参照 -弱いリンクを実装するための提案が受け入れられました。
- [RFC] Locked Classes-クラスに新しい
locked
キーワードを導入することが提案されています。 そのようなクラスは、プロパティの動的な使用のために閉じられます。つまり、宣言されていないプロパティにアクセスできません。
非表示のテキストlocked class TestClass { public $definedProp; } $t = new testClass(); $t->definedProp = "OK"; echo $t->definedProp; unset($t->definedProp); echo $t->nonExistentProp; // Error $t->nonExistentProp = "Not OK"; // Error unset($t->definedProp); // Error
- PHP内部ニュース:エピソード1-著者Xdebug Derick Rethansによる新しいポッドキャスト。 最初の号では、ニキータ・ポポフとの会話。
- __toString() -NikitaのPRからのスローを許可します。 古いPHPの問題の1つである
__toString
例外をスローできないという問題を修正します。 - リスト内包表記 -Sarah Golemanによるコンセプトで、PHP用のリスト内包表記が実装されています。 構文はPythonほどエレガントではありませんが、面白そうです:
$a = [1, 2, 3]; $mul = 3; $c = [ for $a as $v yield $mul * $v use ($mul) ];
ツール
- spatie / image-optimizer-パッケージは、一連のツールを実行することにより、イメージのサイズを最適化します。
- swagger-mock / swagger- mock-テストデータの生成をサポートするOpenAPI 3用のモックサーバー。 strider2038によって提出されました 。
- johnkary / phpunit-speedtrap-このユーティリティは、どのPHPUnitテストが長すぎるかを通知します。
- BrainMaestro / composer-git-hooks -composer.jsonからGitフックを管理します。
- blastcloud / guzzler-ガズルリクエストに便利なmoka。
- ptlis / php-serialized-data-editor-直接デシリアライズせずにPHPを使用してシリアル化されたデータを操作できます。
- bakame-php / csv-doctrine-collections-bridge -CSVデータの教義要求を行うことができます。 詳細については、 投稿をご覧ください。
- VKCOM / noverify -VKontakteチームのPHPのLinterは、パブリックドメインになりました。 z7zmey / php-parserに基づいて作成されています。 サポートのHabrapost 。
symfony
- Symfonyはリアルタイムのプッシュ機能を取得します! -Symfonyは、 Mercureプロトコルを介してプッシュモデルとリアルタイムアプリケーションのサポートを実装します。 プロトコルはSSEの上で実行され、WebSocketとは異なり、HTTP / 2およびHTTP / 3の機能を使用できます。
- Twigの新機能: 名前空間のクラス 。
- symfony / http-client -Symfonyファミリーの新しいコンポーネントであるHTTPクライアントを導入しました。 PSR-18を使用せずに独自のインターフェイスを実装しましたが、アダプターがあります。 Fabienneスライドの詳細。
- King2500 / symfony-meta -.phpstorm.meta.phpの新機能により 、パッケージはPhpStorm 2019.1でのSymfonyの自動補完を改善します 。
- Symfony Week#636(2019年3月4〜10日)
ララヴェル
- Laravel 5.8 -EloquentのHasOneThrough関係はリリースで確定され、文字列と配列のヘルパーは非推奨になり、電子メール検証は改善されました。 もっと Laracon Onlineに関するテイラーのレポート 。
- Taylor Podcast Laravelスニペット#7 、 #8
- Laravelのファサードと静的呼び出しを依存性注入に置き換える方法
- 100行のコードでのLaravelのREST API
- psalm / laravel-psalm-plugin -LaravelのPsalm静的アナライザープラグイン。 laravel-ide-helperを使用して生成されたスタブと.phpstorm.meta.phpに基づいて動作します。 サポートに投稿します。
- AlexHnydiuk / laracent -Laravel 5.7用Centrifugoブロードキャストドライバーnokseにより提出 。
- avto-dev / roadrunner-laravel -LaravelアプリケーションとのRoadRunner統合パッケージ。 構成と簡単に拡張可能なワーカーが提供されます。 paramtamtamによって提出されました 。
Yii
- Yii 2.0.16.1
- リリースサイクルYii-メジャーリリースは5年間サポートされます。そのうち2つはアクティブな修正で、3つはセキュリティエラー修正です。
- zhuravljov / yii2-queue-monitor -Yii2キューを監視および管理するためのWebインターフェイス。
非同期PHP
- WyriHaximus / reactphp-cron - ReactPHP用の Cronに似たスケジューラー(タイマー)。
- phpinnacle / ensign - Amphp上の非同期シグナルディスパッチャ。
学習教材
- php-ai / php-mlを使用して、PHPのk最近傍法を使用して大気汚染を予測します。
- PHPバイナリヒープの実装
- Matthias Noback: 手書きのサービスコンテナー
- タイプミスがRCE脆弱性の悪用につながった方法
- PhpStormでライブテンプレートを使用する方法 -GitHubリポジトリを介してPhpStormのスニペットを操作する方法のトピック。
- Node.jsとPHPの間でセッションを共有する
- FunPHP: インタビューでの一般的な霜
- PHP:チーム開発でのデータベース構造の変更
- Wordファイルから他の形式への変換を自動化する
ご清聴ありがとうございました!
間違いや不正確さに気付いた場合は、 午後にお知らせください。
質問や提案はメールまたはツイッターに書き込みます。
PHP Digest Telegram Channelに関するその他のニュースとコメント。
リンクを送信
すべてのダイジェストの検索リンク
← 前号:PHP Digest No. 150