タグ

phpに関するrryuのブックマーク (188)

  • 【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
    rryu
    rryu 2024/05/22
    アクセッサと自動実装プロパティが同時に実現されている感じで結構ややこしい。
  • 静的解析ツールで生まれたSQLインジェクション | ドクセル

    自己紹介 小川 経歴 ~2009: Webアプリ開発のバイト&業務委託 2009~2019: 三菱重工 イット何も関係ない。野良のパソコンの大先生してた 2019~いま: root ip B2BのSaaS作ってます PHPVue分かる人来て!!1 面白かった脆弱性 - CVE-2023-22727 PHPフレームワーク CakePHP 4 のSQLインジェクション脆弱性 ORM limit(), offset() でSQLi CVSS v3 9.8 2023/01に修正済み CakePHPLaravelの次に使用率高いフレームワーク(多分) 割と使いやすいからお勧め 一般にコード品質が上がる静的解析ツールの使用で逆に発生

    静的解析ツールで生まれたSQLインジェクション | ドクセル
    rryu
    rryu 2023/09/05
    静的解析ツールの自動修正機能がPHPのDocコメントの引数の型を見て冗長とみなしたキャストを削除してくるのはさすがにやりすぎだと思う。
  • PHPの最高機能、配列を捨てよう!! / Throw away all PHP array now!!!

    At: PHPerKaigi 2023 ( https://phperkaigi.jp/2023/ ) Track A DateTime: 2023/3/25 10:20 (40min) Speaker: uzulla

    PHPの最高機能、配列を捨てよう!! / Throw away all PHP array now!!!
    rryu
    rryu 2023/03/26
    要はコード上に明確な定義があればマシなので、stdClassをnewして使うプロパティを全て初期化するというのは良くやる。PHPは未定義プロパティをエラーにしないのでクラスを定義してもさして変わらないという。
  • 【PHP8.2】PHPで選言標準形 (Disjunctive Normal Form) 型が使えるようになる - Qiita


     PHPPHP8.0ORPHP8.1AND使 使 function f(A | B | C $param){} // OK function f(A & B & C $param){} // OK function f(A | B & C $param){} // NG  RFC  PHP8.2DNF使 RFCDisjunctive Normal Form Types PHP RFC: Disjunctive Normal Form Types Introduction Disjunctive Nor
    【PHP8.2】PHPで選言標準形 (Disjunctive Normal Form) 型が使えるようになる - Qiita
    rryu
    rryu 2022/07/19
    Disjunctive Normal Form Typesは型の性質ではなく記述方法がDNFというだけで、要はANDとORを混ぜて使えますというだけらしい。
  • 【PHP8.2】PHP8.2の新機能 - Qiita


    PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2022/07/19PHP8.2  2022/11/24PHP8.2.0 PHP8.2RFC RFC Disjunctive Normal Form Types 251  UNION使  // ABCint function hoge( A | (B &C) | int $param){}
    【PHP8.2】PHP8.2の新機能 - Qiita
    rryu
    rryu 2022/07/19
    動的プロパティはプロパティの定義の意味が無くなるので邪魔でしかなかったのだが、ようやく対処するということは互換性の対応の目処がついたということなのだろうか。
  • 【PHP9】ついに未定義変数が使えなくなる - Qiita


    PHP9 RFCUndefined VariableError Promotion 2022/03/142022/03/28 2022/03/21306 Undefined VariableError Promotion Introduction 使 Warning: Undefined variable $varnameE_WARNINGNULL  
    【PHP9】ついに未定義変数が使えなくなる - Qiita
    rryu
    rryu 2022/03/22
    変数定義の構文が追加されるのかと思ったら、未初期化の変数の参照をエラーにするということらしい。関数冒頭で全変数を初期化する作法ができてしまいそうではあるが。
  • PHPでログファイルへの読み書きを通して任意コード実行をする方法 - knqyf263's blog


    LaravelCVE-2021-3129PoCCTFer www.ambionics.io 12  =     consumed iconv  UTF-16調 NULL   1 PHP
    PHPでログファイルへの読み書きを通して任意コード実行をする方法 - knqyf263's blog
    rryu
    rryu 2021/10/13
    外部から与えられたファイル名でファイルを開いたと思ったらphp://filterラッパーで色々加工されているって怖いな…
  • 【PHP8.1】PHP8.1で削除される機能 - Qiita


    NikitastrictPHP PHP PHP7PHP8.0 RFCDeprecations for PHP 8.1 2021/06/302021/07/142/3 Deprecations for PHP 8.1 RFCPHP8.1PHP9.0   PHP8.1使
    【PHP8.1】PHP8.1で削除される機能 - Qiita
    rryu
    rryu 2021/10/06
    よく分からないものがまだこんなにあったとは…
  • PHPのパッチバージョンを上げたらひどい目にあった話 - TORANA TECH BLOG


     2021/08/25()PHP7.4.21 -> 7.4.22 renovate tech.torana.co.jp AMILaunchTemplateterraform applyAutoScalingGroup 便Slack   PHP deployAurora MySQL stg
    rryu
    rryu 2021/09/30
    修正差分を見たけど結局PHPの何に引っかかっていたのかが分からない…
  • 【PHP8.2】動的プロパティが禁止される - Qiita


    $dt = new DateTime(); $dt->hoge = 1; var_dump($dt->hoge); // 1 PHP  RFC Deprecate dynamic propertiesRFC PHP RFC: Deprecate dynamic properties Introduction PHP  RFC
    【PHP8.2】動的プロパティが禁止される - Qiita
    rryu
    rryu 2021/09/02
    プロパティ名をtypoしててもエラーにならないせいで謎の挙動が発生するというのが地味につらいので何とかして欲しいところだが、完全禁止で互換性が無くなるのもそれはそれでつらい。
  • SJIS-macに変換したはずなのにSJIS-winになる - Qiita


    $utf8Str = ""; $sjisStr = mb_convert_encoding($utf8Str, 'SJIS-mac'); echo(mb_detect_encoding($sjisStr, ['UTF-8','SJIS-mac', 'SJIS-win', 'SJIS'])); // SJIS-win  SJIS-macSJIS-win SJIS-macMacJapanese MacJapanese This is a bug in PHP's mbstring extensionmbstring 
    SJIS-macに変換したはずなのにSJIS-winになる - Qiita
    rryu
    rryu 2020/09/29
    文字列によってはそうなると思ったら、丸付き数字の文字コードはSJIS-winとSJIS-macで異なるのになぜかSJISでもなくSJIS-winと判定されるというバグなのか。
  • 【PHP8.0】PHP8.0の新機能 - Qiita


    PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2020/11/26   2020/08/04PHP8.0  2020/11/26PHP8.0 PHP8.0RFC RFC JIT 502 PHP8JIT PHP使 Opcache1.3-1.5CPU3Opcache1
    【PHP8.0】PHP8.0の新機能 - Qiita
    rryu
    rryu 2020/08/14
    変更点が結構多い。適切じゃなかったり間違ってるけどどなんとなく動いているみたいなやつを殺しに来ているのでコードの質が問われそう。
  • PHP7から定数配列がOPcacheに乗るので巨大配列が使い放題という話 - hnwの日記


    PHP 7.05PHP 8.0使5PHP 7.x 稿PHP 7.0 PHP5 使 <?php $country_name = [ 'jp' => '', 'us' => '', 'ru' => ''
    PHP7から定数配列がOPcacheに乗るので巨大配列が使い放題という話 - hnwの日記
    rryu
    rryu 2020/08/13
    CMSなどからデータ入りのPHPファイルを生成して検索するみたいな仕組みでより巨大なデータが扱えるようになるとかはあると思うが、これが効く規模になるとメモリの方が怖い感じがする。
  • 【PHP8.0】PHPに名前付き引数が実装される - Qiita

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

    【PHP8.0】PHPに名前付き引数が実装される - Qiita
    rryu
    rryu 2020/07/16
    なんというか、よくもまあ全体的に辻褄の合う仕様をひねり出したという感じ。
  • 【PHP8.0】PHPでunion型が使えるようになる - Qiita


    Union Types 2.0RFC Nikita 2019/10/252019/11/082/3+1 2019/11/04555 PHPunionTypeScriptunion int|string $a$aintstring RFCGitHubRFCGitHub RFCNikitaGitHubPHP GitHub GitHubURL404
    【PHP8.0】PHPでunion型が使えるようになる - Qiita
    rryu
    rryu 2019/11/05
    賛成多数なのはこれが無いと内部関数に型宣言が付けられないからだと思うが、この頑張りは報われるのだろうか。
  • クレイジーな JavaScript からおさらば! PHP でダイナミックなフロントエンド書こうぜ!な livewire - Qiita


     JavaScript  PHP  livewirePHPJavaScriptLaravellivewire  JavaScript  ... Livewire   Livewire Livewire () vanilla PHP  Laravel    ...!
    クレイジーな JavaScript からおさらば! PHP でダイナミックなフロントエンド書こうぜ!な livewire - Qiita
    rryu
    rryu 2019/08/17
    Rails2の頃のAJAX対応機能ぽい。あの頃のRailsは全てをRubyで書くというクレイジーさがあった。
  • P++: 銀河に平和をもたらすための奇策と決着 - Qiita

    PHP 8から、PHPは「PHP」と「P++」という2つの言語を提供するようになる というキャッチーな紹介をするP++: 静的型付けをめざすPHPという記事がそれなりに話題になり、このニュースは目覚しく革新的な内容で、多くのひとの目を引き付けました。 これは早まった理解であり、ほとんど誤報と言ってもいい内容でした。2019年8月15日には提案者人も、少くとも「P++」の計画を短期的に実現するととは非現実的であり時期尚早であることを認めています。 この記事では、PHP開発の現状、なぜ野心的なP++計画が提案され、事実上撤回されたかの経緯について紹介します。 [中立性のための表示] この記事の著者@tadsanはPHPの静的解析を強く推進する立場です。 PHPゆるふわCI入門 PHP型検査・夢と理想と現実) 三行で要約 PHPはバージョンを経るごとに「歴史的経緯」による負債が削ぎ落されてきた

    P++: 銀河に平和をもたらすための奇策と決着 - Qiita
    rryu
    rryu 2019/08/14
    コミュニティが互換性重視派と革新派とでつぶし合いになるのをなんとかするアイデアということらしい。
  • P++: 静的型付けをめざすPHP


    PHP: pplusplus:faq PHP8PHPPHPP++2P++PHPPHP PHP2PHPPHPPHP P++PHPP++forkPHPPHP8PHPP++ P++
    rryu
    rryu 2019/08/13
    静的型付けへの最大の障害は型ガバガバな組み込み関数なんじゃないだろうか。
  • PHPサーバーサイドプログラミングパーフェクトマスターのCSRF対策に脆弱性

    サマリ PHPサーバーサイドプログラミングパーフェクトマスターには、PHP入門書としては珍しくクロスサイト・リクエストフォージェリ(CSRF)対策についての説明があるが、その方法には問題がある。アルゴリズムとして問題があることに加えて、実装上の問題があり、そのままコピペして用いると脆弱性となる。 はじめに 古庄親方の以下のツイートを見て驚きました。 CSRF用のトークンの作成 $token = password_hash(mt_rand(), PASSWORD_DEFAULT); ってのを書籍で見た………もンのすンげぇなぁ(苦笑 書籍名でググって調べる……評判が悪いので、まぁ、納得っちゃぁ納得。 — がる (@gallu) July 17, 2019 CSRFトークンの生成に、password_hash関数を使うですと? 親方に書籍名を教えていただき、購入したのが、この記事で紹介する「PH

    rryu
    rryu 2019/07/29
    password_hashで生成した値自体を比較していればそうまずくはなかったのにpassword_verifyで照合するからトークンは空ではないが元値は空という隙を作りワンタイム化によってトドメを刺したという…
  • 【PHP8.0】PHPでJITが使えるようになる - Qiita


    2020/06/26JITRFC2019/03/21 2019/03/282019/03/27482JITJITis PHPopcode opcodeCPUOS OPcacheopcode使
    【PHP8.0】PHPでJITが使えるようになる - Qiita
    rryu
    rryu 2019/03/29
    ローカル変数のみを使用した数値計算はJITによってレジスタと算術命令を使用したものに変換できるから劇的に速くなるのだが、PHPで数値計算する用途があるのだろうか。