タグ

phpに関するshunt_iのブックマーク (15)

  • php-fpm リクエストサイクル - Shin x Blog

    php-fpm がリクエストを処理しているサイクルをざっくりとまとめました。 php-fpm ワーカープロセスの生成 リクエストループ 1) リクエスト接続待ち listen_socket の生成 FastCGI リクエスト 2) リクエスト開始処理 実行PHPファイルパスの決定 スーパーグローバルへの格納 3) PHPファイル実行 4) リクエスト終了処理 PHP コード実行リソースの解放 max_requests チェック FastCGI クライアントとの通信 接続開始 リクエスト読み取り レスポンス書き込み 接続終了 さいごに php-fpm ワーカープロセスの生成 php-fpm は FastCGI リクエストを処理する SAPI 実装の一つです。いわば、PHP コードを実行する FastCGI サーバです。prefork 型となっており、nginx 等からの FastCGI リク

    php-fpm リクエストサイクル - Shin x Blog
    shunt_i
    shunt_i 2024/06/12
  • Docker Compose で php-fpm が発行するシステムコールを見る - Shin x Blog

    php-fpm の挙動を確認するために発行されるシステムコールを簡単に確認できる Docker Compose 環境を作りました。 github.com システムコール strace-php-fpm strace オプション php-fpm が発行するシステムコール例 ini ファイルの探索 nginx からの FastCGI リクエスト PHP ファイルの読み込み さいごに 参考 システムコール システムコールは、php-fpm のようなユーザプログラムが、ファイル操作やネットワーク通信、プロセス制御のようなカーネルが提供する機能を利用する仕組みです。PHP コードは PHP(ここでは php-fpm)で実行する必要があるので、php-fpm が発行するシステムコールを確認することで php-fpmPHP コードがどのように動作しているかを知る手掛かりになります。 システムコールを

    Docker Compose で php-fpm が発行するシステムコールを見る - Shin x Blog
    shunt_i
    shunt_i 2024/05/22
  • 3v4l.org - online PHP shell with 250+ PHP versions

    Welcome to the best online PHP shell3v4l.org (leetspeak for eval) is an online shell that allows you to run your code on my server. I compiled more than 250 different PHP versions (every version released since 4.3.0) for you to run online. For every script you submit, this site tells you: Output from all released, plus upcoming alpha/beta/RC PHP versionsPerformance (time and memory) of every versi

    3v4l.org - online PHP shell with 250+ PHP versions
    shunt_i
    shunt_i 2023/10/10
    PHPのバージョンを切り替えてオンライン実行できる
  • 「NativePHP」、PHPでデスクトップアプリを開発できるフレームワークが登場

    PHP言語を用いてデスクトップアプリケーションを開発可能にするフレームワーク「NativePHP」が登場しました。現在アルファ版として公開されています。 PHPランタイムとElectron/Tauriをバンドル NativePHPHTMLCSSJavascriptそしてPHPを用いてWindowsMacLinuxのクロスプラットフォームに対応したデスクトップアプリケーションを開発可能にするフレームワークです。 PHPランタイムと、アプリケーションからホストOSへアクセスするためのクラス群、Web技術デスクトップアプリケーションを開発可能にするフレームワークであるElectronもしくはTauriをバンドルし、アプリケーションとしてビルドする機能を備えています。 現時点ではPHPのフレームワークとしてLaravelをベースにしていますが、特定のフレームワーク依存をなくしていく方向

    「NativePHP」、PHPでデスクトップアプリを開発できるフレームワークが登場
  • 【PHP8.1】列挙型(Enum)について徹底解説 | TekRog

    列挙型のインスタンス 列挙型はクラスに似ています。::演算子で参照されたcase値は、列挙型のインスタンスとなります。 $a = Size::Small; var_dump($a instanceof Size); //bool(true) また、このインスタンスはシングルトンです。 $a = Size::Small; $b = Size::Small; var_dump($a === $b); //bool(true) それぞれのインスタンスは読み取り専用のnameプロパティを持ちます。caseで定義した名前そのものを返します。 $a = Size::Small; $b = Size::Medium; var_dump($a->name); //string(5) "Small" var_dump($b->name); //string(6) "Medium" Pure EnumとBac

    【PHP8.1】列挙型(Enum)について徹底解説 | TekRog
    shunt_i
    shunt_i 2023/05/14
  • なぜ出力時のHTMLエスケープを省略してはならないのか - Qiita

    メリークリスマス! 週末もPHPを楽しんでますか? ところでWebセキュリティはWebアプリケーションを公開する上で基礎中の基礎ですよね! メジャーな脆弱性を作り込まないことはWeb開発においては専門技術ではなく、プロとしての基です。 中でもXSS (Cross-Site Scriptingクロスサイトスクリプティング)やインジェクションについての考慮は常に絶対に欠いてはならないものです。 現実にはプログラミングには自動車のような運転免許制度がないため、自動車学校に通わず独学で公道に出ることができてしまいます。つまりは基礎知識がないままにWebプログラマとして就職したり、フリーランスとして案件を請けることも現実には罷り通っています。それは一時停止標識も赤信号も知らずにタクシー営業しているようなものです。 このような事情により、体系的な理解のないWeb開発初心者は (時にはn年のキャリアを

    なぜ出力時のHTMLエスケープを省略してはならないのか - Qiita
    shunt_i
    shunt_i 2023/01/02
  • PHPバージョンアップけもの道

    at "PHPバージョンアップ kickoff" 2021/07/15 https://breaktimes.connpass.com/event/218221/

    PHPバージョンアップけもの道
    shunt_i
    shunt_i 2021/07/16
  • 駆け出しエンジニアの皆さんに知ってほしい脆弱性のこと。

    セキュリティは難しいです。 ですが、プログラミング初学者の皆さんは必要以上に萎縮せず、どんどんアプリケーションを作り、公開することにチャレンジして欲しいと私は思っています。 一方、事実として、脆弱なアプリケーションが公開されている(サーバ上でアクセス可能な状態になっている)だけで、全く無関係な第三者が被害を被る可能性があることは知っておく必要があります。 それはWordPressを使った単なるWebサイトであったとしても同じです。 また、あなたのアプリケーションが破壊されて困らないものであったり、 個人情報を保持していないものであったとしても、です。 だから、知らなかった、では済まされないこともあります。 この記事では、PHPのソースを例に、 特にプログラミング初学者が生み出しやすいアプリケーションの脆弱性について、 具体的なコードを挙げながら解説します。 なお、記事のサンプルコードはも

    駆け出しエンジニアの皆さんに知ってほしい脆弱性のこと。
  • サーバーレス LAMP スタック – Part 3: Webサーバーの置き換え | Amazon Web Services

    Amazon Web Services ブログ サーバーレス LAMP スタック – Part 3: Webサーバーの置き換え 投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートである Benjamin Smith による寄稿です。 シリーズの他のパートは以下のリンクからアクセスできます。また、関連するサンプルコードはこちらの GitHub リポジトリにあります。 パート1:サーバーレス LAMP スタックの紹介 パート2:リレーショナルデータベース パート4:サーバーレス Laravel アプリの構築 パート5:CDK コンストラクトライブラリ パート6:MVC からサーバーレスマイクロサービスへ この投稿では、Web サーバーを使用せずにサーバーレス PHP アプリケーションを構築する方法を学びます。 この投稿の後半で、bref および Serverle

    サーバーレス LAMP スタック – Part 3: Webサーバーの置き換え | Amazon Web Services
    shunt_i
    shunt_i 2020/09/22
    “Lambda および API Gateway を使用して PHP アプリケーションを構築する方法”
  • このPHPがテンプレートエンジンのくせに慎重すぎる (前篇) - Qiita

    この記事ではPackagistで公開可能な形式のPHPのライブラリ(Composerパッケージ)を公開するための道具立てを紹介します。あと、現代のPHPerはツールを組み合せてさくっと開発しているんだという自慢です。 タイトルは「この TypeScript が Hello, world! のくせに慎重すぎる」と「この勇者が俺TUEEEくせに慎重すぎる」のぱくr… パロディです。 テンプレートエンジンのくせに型安全なんてなまいきな。 この記事の読みかた せっかくなので手を動かしながら自分でComposerパッケージを作成してみましょう。 今回の題材は「Hello worldを出力する」という革新的機能を提供する、とても画期的な実用ライブラリです。 記事名通り「慎重すぎる」ので、細かく刻んでGitで経過を保存しながら作業を進めていましょう。なんかよくわからない状態になったらgit reset

    このPHPがテンプレートエンジンのくせに慎重すぎる (前篇) - Qiita
  • クラス内のメソッドで自身をnewするときはself、static、parentでいける - Qiita

    タイトルが雑 コード 2017/3/8 0:13 追記 コメントで指摘を頂きました。下記のコードは正しく動作しません。 1. 生成されたオブジェクトを比較するとfalseとなる 2. 他のクラスから継承させると親クラスとなるmyClassのオブジェクトが返される 完全に私の検証不足です。申し訳ございません。 推測ですが、2についてはコンテキストがmyClass内なのでself()ではmyClassが生成されるのではないかと。staticを使用すれば呼び出し元のオブジェクトが返ると思います。 2017/3/8 さらに追記 コメントで教えていただきました。 比較するとfalseになる問題は私のコード記述ミスでした。メンバ変数にオブジェクトを入れてないので毎回新しいオブジェクトが生成されていました。 継承すると親クラスのオブジェクトが返される問題は、selfではなくstaticを使用することで解

    クラス内のメソッドで自身をnewするときはself、static、parentでいける - Qiita
    shunt_i
    shunt_i 2020/01/08
    PHPでシングルトンパターンの継承/まさかりコメの解説:https://qiita.com/ProjectICKX/items/4a4e3f498f6ef325bb5a#_reference-32b958918fd713610982
  • PHPのオブジェクト指向入門 | オブジェクト指向PHP.NET

    Last Updated on 2024年2月1日 by admin 墨田区出張マッサージ店には20代後半くらいから月に2回ほど利用していましたが、40代になってくると仕事の疲れが抜けにくくなってきたこともあり、仕事が帰りとか休日にマッサージ店まで足を運ぼうと思っても体が重くてマッサージ店まで行く気力が無くなっていました。その時に、自宅までマッサージ師を呼べばわざわざ自らがマッサージ店まで足を運ぶ必要がないと考えて、それからは墨田区出張マッサージを月に1回程度利用することになりました。ただし、金銭的に余裕がない場合には2ヵ月に1回程度と少なくしています。墨田区出張マッサージは出張料などが含まれていますのでどうしても割高になってしまいます。それでも墨田区出張マッサージは、仕事の疲れで休日は家で休んでいたい時に便利です。外出する支度をしなくて済みますので、普段家にいるラフな格好でいられます。そ

    shunt_i
    shunt_i 2020/01/04
    フレームワーク作成 & OPP解説
  • 自作Webサービス -SHAKYO-  FWを使用せず素のPHPで制作しました - Qiita

    はじめに フロントエンドエンジニアを目指してプログラミングを学習しています。 トンテキと申します。 プログラミング学習アウトプットとして自作のWebサービス-SHAKYO-を制作、公開しました。 この記事では-SHAKYO-の概要や制作過程について説明します。 URL リンク先はこちら- SHAKYO - 目的 ・フルスクラッチ開発を行うことでWebアプリの基的な構成、動作を知る ・自作のWebアプリで同じ初学者の方の役に立つサービスを提供したい スペック 使用言語 / HTML5/ CSS3 / Javascript / PHP DBMS / MySQL 開発環境 / MacOS Mojave 10.14.6 バージョン管理 / SourceTree(3.0.15) 番環境 / xserver 主な機能 ユーザー管理機能 ・ユーザー登録機能 ・ユーザーログイン機能 ・ユーザー編集機

    自作Webサービス -SHAKYO-  FWを使用せず素のPHPで制作しました - Qiita
  • Laravel 5.4 Advanced #1 Setting up Docker with Laravel (Windows and MAC)

    shunt_i
    shunt_i 2018/09/06
    dockerでlaravel with laradock
  • PHPでデータベースに接続するときのまとめ - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース

    PHPでデータベースに接続するときのまとめ - Qiita
    shunt_i
    shunt_i 2017/09/03
    PDOを使ったPHPでDB接続/すごく良い
  • 1