タグ

phpに関するkabakiyoのブックマーク (18)

  • 迂闊にTLS/SSLをPHPで実装してみたら最高だった件 - Code Day's Night

    この記事はTLS/SSLを実装してみたいという人が増えるといいな!という気持ちで書いています。実装の詳細は別記事で書こうかと思います。 数年前からいつかTLS/SSLのプロトコルをPHPで実装したいと思い、まずはで知識を得ようかとラムダノートの「プロフェッショナルSSL/TLS」や 「徹底解剖TLS1.3」を買って読んでみましたが、なかなか頭に入らずに読んでは寝てしまうというパターンに。 やはり自分でTLSを実装してみないとなと思ってたところに、PHPカンファレンス福岡2024で hanhan1978 さんの「PHPでデータベースを作ってみた」を見て大いに刺激をもらい、ついにTLS実装に着手できました。 speakerdeck.com この資料は当によくて名言の宝庫です。たとえば、 「まじめに作ろうとすると大変な努力が必要になる。もっと迂闊につくりたい」 「不格好でもいいので、動く完成

    迂闊にTLS/SSLをPHPで実装してみたら最高だった件 - Code Day's Night
  • use 文は PHP ファイルを読み込まない - Shin x Blog

    PHP の use 文では、クラス名や関数名、定数、名前空間などのエイリアスを設定できます。 <?php use App\Foo; use App\Bar as ABar; $foo = new Foo(); $bar = new ABar(); https://www.php.net/manual/ja/language.namespaces.importing.php この use 文は指定したシンボルにエイリアスを設定する、言い方を変えると名前空間をインポートするもので、オートロードでクラス定義 PHP ファイルを読み込むものではありません。*1 例えば、上記コードの場合、use 文の時点で App\Foo や App\Bar に対するオートロードは動作しません。 この動きを確認してみます。 use 文のみを実行 use 文でオートロードが動作するかは下記のようなコードで簡単に確かめ

    use 文は PHP ファイルを読み込まない - Shin x Blog
    kabakiyo
    kabakiyo 2024/06/07
    traitの場合はどうなんだろう
  • 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!!!
    kabakiyo
    kabakiyo 2023/03/26
  • Laravelへの異常な愛情 または私は如何にして心配するのを止めてEloquentを愛するようになったか

    動画: https://youtu.be/QHjRGPw34EI?si=MWb-1v1i1S5MG0eE プロポーザル: https://fortee.jp/phperkaigi-2023/proposal/6211083d-fc51-49a3-8b27-485d8e231b1f

    Laravelへの異常な愛情 または私は如何にして心配するのを止めてEloquentを愛するようになったか
  • PHPでログファイルへの読み書きを通して任意コード実行をする方法 - knqyf263's blog

    以前少し話題になったLaravelのデバッグモード有効時の脆弱性であるCVE-2021-3129のPoCを読んでいたのですが、思ったより難しくて何でこんなことをしているんだろうと思ったら発見者による解説ブログがありました。読んでみたらバイパスのために思ったより色々していて普通に勉強になったのでメモを残しておきます。CTFerからすると常識な内容かもしれないので、何か間違いや補足があれば指摘をお願いします。 www.ambionics.io 前提知識1 前提知識2 題 問題点 = によるエラー 日付のデコード ログファイル内の他エントリ バイパス方法 consumedの利用 iconvの利用 パディングの利用 UTF-16のための調整 NULLバイトの回避 最終形 まとめ 前提知識1 上の脆弱性を理解するためにはいくつかの前提知識を必要とするため最初にまとめておきます。 まず、PHPでは外

    PHPでログファイルへの読み書きを通して任意コード実行をする方法 - knqyf263's blog
    kabakiyo
    kabakiyo 2021/10/11
  • 「ドメインをモデリングして PHP コードに落とし込む」を発表しました / PHP カンファレンス 2021 - Shin x Blog

    2021/10/02, 03 にオンラインで開催された PHP カンファレンス 2021 にて「ドメインをモデリングして PHP コードに落とし込む」を発表しました。 発表資料 Sample code: https://github.com/shin1x1/domain-modeling-with-php Togetter: https://togetter.com/li/1783062 joind.in: https://joind.in/talk/650b0 ドメインモデルという共通概念をモデリングし、それをコードに反映するという内容です。 去年は事前に録画して自分で再生した のですが、今年はライブでやりました。やっぱりライブは良いですね。話し出しはモニタに向かって話す違和感がありましたけど、途中から調子が掴めてきました。 Discord をチラ見していたのですが、リアルタイムでどんど

    「ドメインをモデリングして PHP コードに落とし込む」を発表しました / PHP カンファレンス 2021 - Shin x Blog
  • level=0 から始める PHPStan(Larastan) 導入ガイド - Shin x Blog

    PHP にはアプリケーションを実行せずに静的にコード品質をチェックする静的解析ツールがいくつかあります。有名なところでは、PHPStan や Psalm、Phan、PHPMD などがあります。エントリでは、まだこうした静的解析ツールを導入していないプロジェクト向けに PHPStan 導入の流れをまとめてみました。 3(4) 行まとめ サンプルコード PHPStan とは 適用方針 Playground PHPStan のインストール Composer Composer(Larastan) Docker 設定ファイルの作成 PHPStan の実行 主なエラー(level=0) baseline ファイルの作成 baseline ファイルの修正 CI での自動実行 GitHub Actions の設定 ブランチ保護ルール さいごに 3(4) 行まとめ composer もしくは Docker

    level=0 から始める PHPStan(Larastan) 導入ガイド - Shin x Blog
    kabakiyo
    kabakiyo 2021/08/26
  • Table Of Contents — PHP Internals Book 日本語訳

    PHP Internals Book 日語訳 Table Of Contents コンテンツ :: はじめに  » 注釈 このサイトは PHP Internals Book の日語翻訳サイトです。リポジトリは ここ です。 Table Of Contents¶ はじめに PHPビルドシステムを使う PHPをビルドする PHPエクステンションをビルドする PHPエクステンションの作成 Zvals 基構造 メモリ管理 キャストと演算 関数の実装 ハッシュテーブル 基構造 ハッシュテーブルAPI Symtableと配列API ハッシュアルゴリズムと衝突 クラスとオブジェクト シンプルなクラス 独自のオブジェクトストレージ 型付き配列の実装 オブジェクトハンドラー イテレーター シリアライゼーション 定義済みインターフェイス 内部構造と実装 索引と検索¶ 索引 検索ページ コンテンツ ::

    kabakiyo
    kabakiyo 2020/05/30
  • Xdebug: Documentation » Step Debugging

    Xdebug's step debugger allows you to interactively walk through your code to debug control flow and examine data structures. Introduction # Xdebug interacts with IDEs to provide step debugging functionality, and therefore you also need to configure an IDE that knows how to talk to Xdebug with the open DBGp protocol. This protocol is supported by nearly every PHP IDE (including Visual Studio Code a

  • Developing at Full Speed with Xdebug - Juan Treminio - Senior Web Developer Blog

    A quick history ed: If you want to jump right to the solution, jump ahead to Nginx map. Docker for Mac is very slow. It is so slow that I purchased a new Dell XPS laptop and for the first time in 6 years am now using a non-MacOS (Fedora) machine as my daily driver. Not everyone has the luxury of switching their OS, though, and they are stuck on slow Docker. A normal Symfony 2.4 application will co

  • php7 + phpdbgで高速カバレッジ出力 - エンジニアブログ

    先日は、今私が関わっているプロジェクトphpのバージョンを挙げた際のTipsについて投稿しました。 http://blog.matchingood.com/entry/2017/03/09/202011blog.matchingood.com 今日は、php7にバージョンアップしたことによって可能になった、phpdbgによるコードカバレッジ出力について書きたいと思います。 phpdbgとは Loading... phpdbgは、phpのデバッガです。デバッガというとphpの場合似たようなものとしてxdebugもありますが、xdebugはあくまでphpの拡張モジュールであって、その恩恵を最大限に受けるにはIDEが必要不可欠です。 一方、phpdbgは端末上での逐次実行やブレークポイントの設定など、デバッガとしての実行を端末環境で行うことができます。C言語に馴染みがある人ならgdbライクだと

    php7 + phpdbgで高速カバレッジ出力 - エンジニアブログ
  • PHPでメソッドチェーン

    キータを見ていたら凄いメソッドチェーンがあったので参考に記録しておく。 ちょっと改造も施しておく。 コード class chain { private $context = null; public function __construct($init){ $this->context = $init; } public function __call($function, $arg){ $arg[] = $this->context; $method = "_" . $function; if(method_exists($this, $method)) { $this->context = call_user_func_array(array($this, $method), $arg); } elseif(is_callable($function)) { $this->contex

    PHPでメソッドチェーン
    kabakiyo
    kabakiyo 2020/04/24
  • PHP変態文法最速マスター

    PHP基礎文法最速マスター | Shin x blogより。 変態文法ならもう少しいろいろあると思うので、まとめてみました。ただ、ほとんどがPHPに限らない話かも。。。 この記事はPHP 5.2.12 (cli) で動作確認してます。5.3の文法は他をあたってください。5.3専用フレームワークなどを探せば勉強になるかも。 復習:PHPは何でも文字列 参考:Modern PHP Programming 入門 @ PFI 社内セミナー - 肉とご飯と甘いもの @ sotarok 変数名も、関数名も、クラス名も何でもかんでも文字列です。逆に言えば、文字列を変数名や関数名として使用することができます。可変関数とか可変変数とか言います。 <?php //可変変数 //////////////// $abc = '変数abcの中身'; echo $abc, PHP_EOL; echo ${'abc'}

    PHP変態文法最速マスター
    kabakiyo
    kabakiyo 2020/04/24
  • 独立したコアレイヤパターン - Shin x Blog

    モチベーション 全体 サンプルアプリケーション コアレイヤ サービスレイヤ 口座間送金ユースケース 処理の流れ コアレイヤ サービスレイヤ コアレイヤ対象範囲 DDD スタイル 手続き型スタイル 実装アイデア レイヤでパッケージを分ける コアレイヤの範囲 ポートの種類 DDD スタイルへの一歩目 さいごに 参考 独立したコアレイヤは、アプリケーション実装パターンである。以下のような特徴を持つ。 アプリケーションを、何を実現するのか(What)と、どのように実現するのか(How)に分ける。 What は、コアレイヤに実装する。ユースケースやドメインロジックを実装する。フレームワークやライブラリには依存しない。UI やデータベースからは独立している。 How は、サービスレイヤ(仮)に実装する。フレームワークやライブラリを活用して、ユースケースが要求する技術詳細を実装する。 コアレイヤが必要な

    独立したコアレイヤパターン - Shin x Blog
  • PHP: 遅延静的束縛 (Late Static Bindings) - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 遅延静的束縛 (Late Static Bindings) - Manual
    kabakiyo
    kabakiyo 2019/10/17
  • PHP5.4 で実装された trait のまとめと実際の利用例|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    PHP5.4 で実装された trait のまとめと実際の利用例 弊社技術ブログへお越しのみなさま、こんにちは。今年度入社の新人、 YamaYuski です。 先日、社内勉強会にて「traitを使って楽したい話」という演目で簡単に trait について発表しました。 trait が実装された PHP5.4 は2年も前にリリースされたものなので、何故今更、という話になると思います。 しかし、ネット上(特に日語圏)においての trait の記事はまだまだ少なく、具体例を探すのも大変だったので、「もしかして trait はあまり浸透していないんじゃないか?」と考え、 trait の有用性を世に広めるためにこの記事を作り始めました。 今回は、初心者ながら個人的に調べたり考えたりしたことを、 trait とはなにか trait の実装方法と利用方法 どのようなケースで実装するか 実装時の小ネタ の4

    PHP5.4 で実装された trait のまとめと実際の利用例|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
    kabakiyo
    kabakiyo 2019/07/05
  • PHP: The Right Way

    ようこそ 時代遅れの情報がウェブ上にあふれている。そんな情報を見たPHP初心者は戸惑ってしまうだろう。そして、まずい手法やまずいコードが広まってしまう。 そんなのはもうやめよう。PHP: The Right Way は気軽に読めるクイックリファレンスだ。PHPの一般的なコーディング規約、 ウェブ上のよくできたチュートリアルへのリンク、そして現時点でのベストプラクティスだと執筆者が考えていることをまとめた。 大事なのは、 PHPを使うための正式なお作法など存在しない ってこと。 このサイトの狙いは、はじめて PHP を使うことになった開発者に、いろんなトピックを紹介すること。 経験豊富なプロの人にとっても、これまで深く考えることなく使ってきた内容について、新鮮な見方を伝えられるだろう。 このサイトは、決して「どのツールを使えばいいのか」を教えるものじゃない。 いくつかの選択肢を示して、それぞ

    kabakiyo
    kabakiyo 2019/06/05
  • PHPを愛する試み 〜self:: parent:: static:: および遅延静的束縛〜 - maeharinの日記

    PHPを愛する試みというものを個人的にやっている PHPを愛する試み PHPを愛する試み 〜調教編〜 今回は、self:: parent:: static:: 遅延静的束縛について図で整理してみた。 スコープ定義演算子 (::) まず「::」について。これはスコープ定義演算子という。マニュアルには以下のようにある。 スコープ定義演算子 (::) スコープ定義演算子 (またの名を Paamayim Nekudotayim)、 平たく言うと「ダブルコロン」は、トークンのひとつです。 static, 定数 およびオーバーライドされたクラスのプロパティやメソッドにアクセスすることができます。これらの要素をクラス定義の外から参照する際には、 クラスの名前を使用してください。PHP 5.3.0 以降では、変数を用いてクラスを参照することも可能です。 変数の値に (self や parent、 stat

    PHPを愛する試み 〜self:: parent:: static:: および遅延静的束縛〜 - maeharinの日記
    kabakiyo
    kabakiyo 2019/06/05
  • 1