ささやかな日々記

日々過ごす中で感じたことや培ったことが誰かの役に立てられたらと思うSEの雑記

PHP 7.2.x から PHP 7.3.x への移行の勝手な日本語訳 後方互換のない変更③

PHP 7.2.x から PHP 7.3.x への移行の日本語訳がないので勝手に翻訳して備忘録にする。
 https://www.php.net/manual/ja/migration73.incompatible.php
 

 Continue Targeting Switch issues Warning 

 スイッチの問題をターゲットにし続ける警告

 

continue statements targeting switch control flow structures will now generate a warning. In PHP such continue statements are equivalent to break, while they behave as continue 2 in other languages.

スイッチ制御フロー構造を対象としたcontinueステートメントは、警告を生成します。 PHPでは、このようなcontinueステートメントはbreakと同等ですが、他の言語ではcontinue 2のように動作します。


<?php
while ($foo) {
    switch ($bar) {
      case "baz":
         continue;
         // Warning: "continue" targeting switch is equivalent to
         //          "break". Did you mean to use "continue 2"?
   }
}
?>


つづいて。

Strict Interpretation of Integer String Keys on ArrayAccess

ArrayAccessでの整数文字列キーの厳密な解釈

 

Array accesses of type $obj["123"], where $obj implements ArrayAccess and "123" is an integer string literal will no longer result in an implicit conversion to integer, i.e., $obj->offsetGet("123") will be called instead of $obj->offsetGet(123). This matches existing behavior for non-literals. The behavior of arrays is not affected in any way, they continue to implicitly convert integeral string keys to integers.

$ obj ["123"]型の配列アクセス。$ objはArrayAccessを実装し、 "123"は整数文字列リテラルであるため、暗黙的に整数に変換されることはなくなりました。つまり、$ obj-> offsetGet( "123")は $ obj-> offsetGet(123)の代わりに呼び出されます。 これは非リテラルの既存の動作と一致します。 配列の振る舞いは何の影響も受けず、暗黙のうちに整数文字列キーを整数に変換し続けます。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

気づけばプロ並みPHP 改訂版ーーゼロから作れる人になる! [ 谷藤賢一 ]
価格:2916円(税込、送料無料) (2019/6/9時点)

楽天で購入

 

PHP 7.2.x から PHP 7.3.x への移行の勝手な日本語訳 後方互換のない変更②

 PHP 7.2.x から PHP 7.3.x への移行の日本語訳がないので勝手に翻訳して備忘録にする。

https://www.php.net/manual/ja/migration73.incompatible.php 

 

「Heredoc/Nowdoc Ending Label Interpretation 」

Heredoc / Nowdocエンディングラベルの解釈

 Due to the introduction of flexible heredoc/nowdoc syntax, doc strings that contain the ending label inside their body may cause syntax errors or change in interpretation. For example in:

柔軟なheredoc / nowdoc構文が導入されたため、本体内に終了ラベルを含むdoc文字列は構文エラーの原因となったり、解釈が変更されたりする可能性があります。 例えば、

 

<?php
$str 
= <<<FOO
abcdefg
   FOO
FOO;
?>

the indented occurrence of FOO did not previously have any special meaning. Now it will be interpreted as the end of the heredoc string and the following FOO; will cause a syntax error. This issue can always be resolved by choosing an ending label that does not occur within the contents of the string.

 

インデントされたFOOの出現は、以前は特別な意味を持ちませんでした。 これは、heredoc文字列の末尾とそれに続くFOOとして解釈されます。 構文エラーが発生します。 この問題は、文字列の内容に含まれない終了ラベルを選択することで常に解決できます。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

気づけばプロ並みPHP 改訂版ーーゼロから作れる人になる! [ 谷藤賢一 ]
価格:2916円(税込、送料無料) (2019/6/4時点)

楽天で購入

 

PHP 7.2.x から PHP 7.3.x への移行の勝手な日本語訳 後方互換のない変更①

PHP 7.2.x から PHP 7.3.x への移行の日本語訳がないので勝手に翻訳して備忘録にする。

 

既存システムを回収する際、特に影響のある項目な後方互換のない変更。

つまりバージョンアップに伴い対応しなければいけない項目。

https://www.php.net/manual/ja/migration73.incompatible.php

とりあえず、PHPCoreの項目だけ。

----

PHP Core 

Heredoc/Nowdoc Ending Label Interpretation 

 Heredoc / Nowdocエンディングラベルの解釈

 

Continue Targeting Switch issues Warning 

 スイッチの問題をターゲットにし続ける警告

 

Strict Interpretation of Integer String Keys on ArrayAccess 

 ArrayAccessでの整数文字列キーの厳密な解釈

 

Static Properties no longer separated by Reference Assignment 

 静的プロパティは参照代入で分離されなくなりました

 

References returned by Array and Property Accesses are immediately unwrapped 

 ArrayおよびProperty Accessから返された参照は、すぐに展開されます

 

Argument Unpacking of Traversables with non-Integer Keys no longer supported 

 整数キー以外のTraversableの引数展開はサポートされなくなりました

 

Miscellaneous 

 その他

----

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

気づけばプロ並みPHP 改訂版ーーゼロから作れる人になる! [ 谷藤賢一 ]
価格:2916円(税込、送料無料) (2019/6/4時点)

楽天で購入

 

PHP 7.2.x から PHP 7.3.x への移行の勝手な日本語訳 目次

PHP 7.2.x から PHP 7.3.x への移行の日本語訳がないので勝手に翻訳して備忘録にする。

 

まず目次、、、って目次という言葉は日本語になってるのね。

https://www.php.net/manual/ja/migration72.php

----

・New Features
・New Functions
・New Global Constants
・Backward Incompatible Changes
・Deprecated Features
・Other Changes
Windows Support

・新機能
・新しい関数
・新しいグローバル定数
後方互換性のない変更点
・廃止予定(推奨されなくなる)機能
・その他の変更

Windowsサポート

 


This new minor version brings with it a number of new features and a few incompatibilities that should be tested for before switching PHP versions in production environments.

 

このマイナーバージョンアップには数多くの 新機能 があります。 また、 互換性がない変更 が多少あるので、実運用環境の PHP をこのバージョンにあげる前にはテストすべきです。

 ----

 

次のタイトルから新機能より既存システムが影響あるかを知りたいので、そっちを中心に書きます。サポートはだいたい3年で切れるので定期的に付き合わなきゃいけない問題。。。

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

気づけばプロ並みPHP 改訂版ーーゼロから作れる人になる! [ 谷藤賢一 ]
価格:2916円(税込、送料無料) (2019/6/4時点)

楽天で購入

 

 

スタミナ源たれ

スタミナ源たれ」という焼肉用のタレがあるのですが、こちら東北、特に青森県で有名な商品らしいのですがひょんなことでもらう機会があり、自分が常用しているおすすめの商品です。

 

 ただのタレとして使うだけではなく、炒め物などの料理するときに入れても美味しく仕上がります。

 

最近だとベーシックなタイプの「たれ」はスーパーでもちょこちょこ見かけるようになった気がします。

 

ただ自分が好きなのはこのベーシックと辛いタイプを混ぜたタレでいただくのにハマっております。よかったらぜひお試しください。

 


 


 

タコスキット

タコスキットを手に入れました。

具材は買う必要あるみたいですので今度試してみます。

タコス楽しみです。

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

オールドエルパソ メキシカンフード タコ・キット 290g
価格:648円(税込、送料別) (2019/6/2時点)

楽天で購入

 

 

PowerShell ファイル追記監視

今回はLinuxで使用されるtailコマンドを使ったファイル追記監視(tailコマンドオプションf)をwindowsで実現する方法です。

 

まずtailコマンドとはファイルの最終行から数行を表示するコマンドであり、
オプションfによって、ファイルの追記を監視するというものです。

たとえばログファイルの更新を監視するために事前にログファイルに対して
tailオプション-fを実行しておきます。

 

そしてログ更新が行われると自動的にCUI上に表示されているログに対して、
更新分が追記されていきます。
今回はこんなことをwindows上でできるコマンドを紹介します。

 

使用するコマンドはこんな感じです。

Get-Content .対象ファイル名 -wait -tail 行数

Get-Contentに対象ファイルを指定してあげて、[-wait]は追記を待ち合わせ、
[-tail 行数]は最終行含んだ行数を読み込むことを意味しております。

例として以下のような10行の「log.txt」で確認してみます。

PS C:\work> cat .\log.txt
1
2
3
4
5
6
7
8
9
10

これに対し以下のコマンドを実行。

PS C:\work> Get-Content .\log.txt -wait -tail 3
8
9
10

すると最終3行だけ表示されますがコマンドは終了せず、待機状態になります。
これでLinuxの[tail -f]を実行した状態と同じような状態になってます。

では、この状態のままエディタで「log.txt」に11行目を追記してみます。

PS C:\work> Get-Content .\log.txt -wait -tail 3
8
9
10
11

保存したタイミングで追記(ファイル内11行目、PowerShell内青字部分)がPowerShell上に表示されました。

ちなみにtailオプションが無い場合でも同じようにファイルの追記監視はできますが、
tailが無いとファイル内を全部読み込んで表示してから待機状態へと移行するため、
容量が大きいファイルですと時間がかかります。

 

また、waitオプション無しでtailオプションのみだと最終〇行を表示します。
それはそれで大容量のファイルがあって最終100行だけ見たいときなんかに使えると思います。

 

Linuxの[tail -f]と同じように使用する際にはどちらのオプションもつけてあげてください。

Get-Contentのエイリアスは[gc]なので短く書く場合にはこんな感じ。

PS C:\work> gc .\log.txt -wait -tail 1
11

※tailの行数を「0」にすると最終0行となり、即ファイル追記監視状態になります。