タグ

ブックマーク / qiita.com/rana_kualu (27)

  • 【PHP8.4】PHP8.4の新機能 - Qiita

    PHP8.4 / PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2024/08/13、PHP8.4がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2024/11/21にPHP8.4.0がリリースされる予定です。 というわけでPHP8.4で実装されるRFCを見てみましょう。 RFC Property access hooks 賛成42反対2で受理。 プロパティフックです。 class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("電話番号は数値のみ"); } if(strlen($value) < 10){ throw new ValueError("電話

    【PHP8.4】PHP8.4の新機能 - Qiita
  • 【PHP8.4】ついにPHPにプロパティフックが導入される - Qiita

    class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("電話番号は数値のみ"); } if(strlen($value) < 10){ throw new ValueError("電話番号は10文字以上"); } $this->tel = $value; } get{ return '電話番号は' . $this->tel; } } } $hoge = new HOGE(); $hoge->tel = '123456789012'; // OK $hoge->tel = 'abcdefghijkl'; // Uncaught ValueError: 電話番号は数値のみ $hoge->tel = '123'; // Uncaught ValueError: 電話番号は10文字以上

    【PHP8.4】ついにPHPにプロパティフックが導入される - Qiita
  • 【PHP8.4】メソッド引数のデフォルトnullがついに禁止される - Qiita

    よく見たら不自然なんだけどこれまで普通に許されていた、この引数デフォルト値がついに禁止されます。 何がおかしいって型がintなのに引数を渡さないと$xがnullになるので矛盾してしまうわけですね。 これはPHPが昔からの仕様を残しておいたためであり、いわゆる歴史的経緯というやつです。 以下は該当のRFC、Deprecate implicitly nullable parameter typesの日語訳です。 PHP RFC: Deprecate implicitly nullable parameter types Introduction PHP7.1で?T構文、さらにPHP8.0でUnion型がサポートされたことにより、PHPはnull許容値型を正しく書くことができます。 歴史的にはPHP5.0でオブジェクト型、PHP5.1でarray、PHP5.4でcallable、PHP7.0で

    【PHP8.4】メソッド引数のデフォルトnullがついに禁止される - Qiita
  • 【W3Techs】2023年8月にWebで最も使われている技術はjQuery・Bootstrap・PHP・WordPress - Qiita

    【W3Techs】2023年8月にWebで最も使われている技術はjQuery・BootstrapPHPWordPressPHPJavaScriptランキングW3TechsQ-Success コンサル会社Q-Successは、World Wide Web Technology Surveysという分析サービスを提供しています。 なんかいかにもW3Cとかと関係ありそうな名前ですが、特に関係はないみたいです。 W3Techsでは、Webサイトを収集し、それらがどのような技術で作られているかといった調査結果を無料で分析・公開してくれています。 こんなに公開していて生計はどうやって立てているのかというと、過去の履歴や細かいレポートなどを有料で売っているみたいです。 6450ページのPDFとか細かすぎて逆に使いこなせそうにもなさそうですが、興味のある方は手を出してみてはどうでしょうか。 データを覗

    【W3Techs】2023年8月にWebで最も使われている技術はjQuery・Bootstrap・PHP・WordPress - Qiita
  • 【PHP8.2】PHP8.2の新機能 - Qiita

    PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2022/07/19、PHP8.2がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2022/11/24にPHP8.2.0がリリースされる予定です。 というわけでPHP8.2で実装されるRFCを見てみましょう。 RFC Disjunctive Normal Form Types 賛成25、反対1で受理。 選言標準形です。 UNION型と交差型を同時に使えるようになります。 思う存分型パズルで遊べますね。 // A型、もしくはB型かつC型、もしくはint function hoge( A | (B & C) | int $param){}

    【PHP8.2】PHP8.2の新機能 - Qiita
  • 【PHP8.1】PHP8.1の新機能 - Qiita

    PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2021/11/26にリリースされました 2021/07/20、PHP8.1がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2021/11/25にPHP8.1.0がリリースされる予定です。 というわけでPHP8.1で実装されるRFCを見てみましょう。 RFC Fibers 賛成50反対14で受理。 Fiberです。 PHPで非同期コードを書けるようになります。 $fiber = new Fiber(function (): void { $value = Fiber::suspend('fiber'); echo "レジュームした。$value: ", $value, "\n"; }); $value = $fiber

    【PHP8.1】PHP8.1の新機能 - Qiita
  • 【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita

    PHPは長きにわたり同期的、すなわち、あらゆる処理を上から順に実行していくというスタイルを取ってきました。 しかしたとえば、複数のURLからデータを取ってきて結果をまとめたいといった場合、時間のかかるHTTPリクエストは同時に投げたいですよね。 この用途にはGuzzleというライブラリが存在し、これを使えば同時にリクエストを投げられます。 しかし、ではHTTPアクセスとDBアクセスを同時にやりたい場合は? 時間のかかる計算を裏でやりたい場合は? などと考え始めると、こういった個別のライブラリでは対処しきれません。 ということで汎用的な非同期処理をPHPで書けるようにするRFCが提出されました。 PHP RFC: Fibers Introduction 人類史上ほぼ全ての期間において、人々はPHPを同期的なコードとしてのみ書いてきました。 同期的に実行されるコードのみが存在し、そしてそれを同

    【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita
  • 【PHP8.0】PHP8.0の新機能 - Qiita

    PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2020/11/26に リリースされました 。 2020/08/04にPHP8.0がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2020/11/26にPHP8.0がリリースされる予定です。 というわけでPHP8.0で対応することが決まったRFCを見てみましょう。 RFC JIT 賛成50反対2で受理。 PHP8の目玉、JITです。 PHPをネイティブコードにコンパイルし、さらにコンパイルした結果を次のリクエストに使い回すことができます。 速度はOpcacheがオンの状態から平均的に1.3-1.5倍程度、さらにCPUバウンドな処理なら3倍以上という劇的な高速化が見込めます。 Opcache無しからだと、1分かかっていた

    【PHP8.0】PHP8.0の新機能 - Qiita
  • 【PHP8.0】PHPに名前付き引数が実装される - Qiita

    function hoge($foo = null, $bar= false, $baz=0, $qux = ''){} こんな関数があったとして、4番目の引数だけ変更したい、他はデフォルトのままでいいという場合、現在のPHPではいちいちデフォルト値を調べて与えないといけません。

    【PHP8.0】PHPに名前付き引数が実装される - Qiita
  • 【PHP8.0】PHPでアトリビュート/アノテーション/デコレータが書けるようになる - Qiita

    Attributes v2というRFCが投票中です。 投票期間は2020/05/04まで、投票者の2/3の賛成で受理されます。 2020/04/27時点では賛成48反対1で、ほぼ間違いなく可決されます。 Attributes v2 Introduction このRFCは、クラス/プロパティ/関数/メソッド/引数/定数の宣言に、構造化されたアトリビュートをメタデータとして記述できるようにする提案です。 アトリビュートは、コードの宣言に直接設定ディレクティブを埋め込むことで定義されます。 同じような概念としてJavaのAnnotation、C#/C++/Rust/HackにおけるAttribute、Python/JavascriptにおけるDecoratorが存在します。 これまで、PHPではこのようなメタデータとしては非構造的であるdoc-commentsしか存在しませんでした。 しかしdo

    【PHP8.0】PHPでアトリビュート/アノテーション/デコレータが書けるようになる - Qiita
  • 【PHP7.4】PHP7.4がリリースされたので新機能全部やる - Qiita

    PHP8.1 / PHP8.0 / PHP7.4 2019/11/28にPHP7.4.0がリリースされました。 ということで、ここではドキュメント化されている新機能や変更点を片端から試してみます。 これら以外にもドキュメント化するほどでもない軽微な変更が多々入っているはずですし、単なるバグ修正も山ほどあるのですが、今回はそのあたりには触れません。 把握しきれていませんしね。 インストール 古いXAMPPが入っていたらディレクトリまるごと削除。 最新のXAMPPをインストール。 WindowsPHPからVC15 x64 Thread Safeをダウンロード。 解凍したディレクトリをpath\to\xampp\phpにまるごと上書きコピペ。 php.ini-developmentをphp.iniにコピー。 php.iniのextension_dirをエクステンションが入ってるディレクトリへの

    【PHP7.4】PHP7.4がリリースされたので新機能全部やる - Qiita
  • 2020年のフロントエンドマスターになりたければこの9プロジェクトを作れ - Qiita

    以下はSimon Holdorf( dev.to/ Twitter / GitHub )による記事、9 Projects you can do to become a Frontend Master in 2020の日語訳です。 9 Projects you can do to become a Frontend Master in 2020 Introduction あなたがプログラミングの初心者であるか、既に経験豊富な開発者であるかにかかわらず、この業界では、急速な変化に追いつくために新しい概念と言語・フレームワークを学び続けることが必要です。 たとえばFacebookが4年前にオープンソース化したReactは、既に世界中のJavaScript開発者にとって第一の選択肢になっています。 もちろんVueAngularにも多くのフォロアーがついています。 さらにはSvelte、Next

    2020年のフロントエンドマスターになりたければこの9プロジェクトを作れ - Qiita
  • 【PHP8.0】PHPでunion型が使えるようになる - Qiita

    Union Types 2.0というRFCが投票中です。 提案者はまたまたのNikita。 2019/10/25開始、2019/11/08終了で、受理には2/3+1の賛成が必要です。 2019/11/04時点で賛成55反対5であり、ほぼ導入確定です。 PHPのunion型って何かというと、TypeScriptのunion型とだいたい同じです。 int|string $aと書いたら$aはint型もしくはstring型ですよ、ということです。 ちなみに別途RFCをGitHubで管理しようという実験が進行中で、このRFCの詳細はGitHub上に存在します。 このRFCはまだNikitaの個人GitHub上にしかないのですが、決まりになったらPHP公式に移動になると思います。 まあGitHubのほうが管理とか更新とか楽ですからね。 ただGitHubはURLがすぐ404になるのだけはどうにかしてほ

    【PHP8.0】PHPでunion型が使えるようになる - Qiita
  • 偉大なプログラマ(+人間)になるための101のTIPS - Qiita

    早く人間になりたい。 以下はEmma Wedekindによる記事、101 Tips For Being A Great Programmer (& Human)の日語訳です。 101 Tips For Being A Great Programmer (& Human) 1. Get good at Googling Googleの使い方を知ろう。 プログラマであるということは、問題に対する答えを探す能力があるということです。 Googleのうまい使い方を知ることで、開発にかかる時間を大幅に節約することができます。 2. Under promise and over deliver 約束は控えめに、出来高は多めに。 タスクに2週間かかるようなら3週間かかると伝え、2週間で提出しましょう。 期待を上回った結果を出すことで、信頼を築くことができます。 3. Be nice to your d

    偉大なプログラマ(+人間)になるための101のTIPS - Qiita
  • PHP7.4の新機能その2 - Qiita

    PHP7.4 / PHP7.4その1 / PHP7.4その2 2019/06/13、PHP7.4.0α1がリリースされました。 今後はベータ、RCと完成度を高めていき、7.4.0のリリースは2019/11/28が予定されています。 なお仕様フィックスは2019/07/13で、それ以降は大きな変更は入らないようになります。 逆に言うとそれまでは追加が入る可能性はあるのですが、既にα1も出たことですし、さすがにこれからのタイミングでプロパティ型指定やらアロー関数レベルの大改修が入ることはないでしょう。 ということで前回以降入った新機能や変更点を見てみることにします。 RFC Arrow functions 2.0 賛成51、反対8で受理。 アロー関数です。 // 新構文 $fn = fn($x) => $x + $y; // ↓と同じ $fn = function ($x) use ($y)

    PHP7.4の新機能その2 - Qiita
  • 【PHP8.0】演算子.と+の優先順位が変わる - Qiita

    PHP7.3現在、演算子+、-と.の優先順位は同じです。 すなわち左から右に評価されます。 マニュアルでもわざわざ例を挙げて解説しています。 さて2019年3月にChange the precedence of the concatenation operatorというRFCが提出されました 2019/05/07現在は投票中のステータスですが賛成多数で、PHP8で上記の動作は変わることになりそうです。 演算子の追加削除はよくあることですが、優先順位の変更というのは他言語含めてもなかなか見ることのないレアなイベントではないでしょうか。 Change the precedence of the concatenation operator Introduction +、-、そして.は長年にわたる問題です。 それは左から右に解釈されます。 このRFCでは、この動作をより直感的に、問題が出にくくな

    【PHP8.0】演算子.と+の優先順位が変わる - Qiita
  • PHP7.4の新機能 - Qiita

    PHP7.4 / PHP7.4.0その2 / PHP7.4.0その1 / PHP7.3.0 / PHP7.3.0α1 PHP7.4で実装される新機能を紹介してみます。 7.3以上の大きな変更が複数導入されることになっていて、大丈夫なのかこれ。 RFC Foreign Function Interface 賛成24、反対15で受理。 $ffi = FFI::cdef(" typedef unsigned int time_t; typedef unsigned int suseconds_t; struct timeval { time_t tv_sec; suseconds_t tv_usec; }; struct timezone { int tz_minuteswest; int tz_dsttime; }; int gettimeofday(struct timeval *tv, s

    PHP7.4の新機能 - Qiita
  • 【PHP7.4】PHPの新たな演算子??=ってなんぞ? - Qiita

    2019/01/22(JST)にImplement ??= operatorという謎のマージがありました。 RFC RFCは賛成37、反対4の圧倒的多数で可決されています。 なお投票開始は2016/03/24で、終了が2016/04/02です。 つまり、それ以来3年弱ほったらかされていたということです。 ??=ってなに? RFCでは『Null Coalescing Assignment Operator』と呼ばれています。 どうも適切な日語がないみたいなのですが、NULL合体演算子(Null Coalescing Operator)から類推すると『NULL合体代入演算子』とかになるんですかね? 名前のとおり、NULL合体演算子と代入演算子を合わせたような演算子です。 使い方 // NULL合体代入演算子 $id ??= getId(); // これと同じ $id = $id ?? get

    【PHP7.4】PHPの新たな演算子??=ってなんぞ? - Qiita
  • JavaScriptの配列のベターな使い方4点 - Qiita

    先日ヘルシオホットクックを衝動買いして、あまりの便利さにメルトダウン中です。 みんなも買おうヘルシオホットクック。 「ヘルシオホットクックカレー作った」をトゥギャりました。 https://t.co/eWXmMOPIfL — ラナ・クアール (@rana_kualu) 2019年1月3日 以下はpacdivによる記事、Here’s how you can make better use of JavaScript arraysの日語訳です。 Here’s how you can make better use of JavaScript arrays この記事はさっくりと読めます。当だよ。 この数ヶ月の間に、私がチェックしているリポジトリで4種類のプルリクエストがやってきていることに気付きました。 これらの間違いは全て自分で作っていたところだったので、この記事を書いています。 配列メ

    JavaScriptの配列のベターな使い方4点 - Qiita
  • PHPで簡単に永続プリロードできるようになる - Qiita

    PHPはHTTPリクエストが来るたびに全てのPHPコードをバイトコードに変換し、そして実行しています。 毎回そんなことやってるのにあれだけ速度が出るのは驚異的ですが、それでもやはりコンパイルにかかる時間だけどうしても遅くなってしまいます。 そこで、もっと高速化するためにOPcacheのような仕組みが存在します。 これはバイトコードをメモリ上に保持し、リクエストを超えて使い回すことでコンパイルの手間を省略し、高速化を実現するというものです。 効果はというと、単純なものでもターンアラウンドタイムが2/3、大きなフレームワークでは半分以下と、お手軽かつ強力な効果があります。 とはいえOPcacheには、元のPHPファイルに変更があるかどうかを監視したりといった僅かなコストが残っています。 特にバイトコードはファイル単位でしかキャッシュできないらしく、extendsなどで別のファイルを参照している

    PHPで簡単に永続プリロードできるようになる - Qiita