Speaker Deck This deck requires a password Password
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
Slim Framework と Docker を使って本格的にアプリを作ってみよう はじめに Web アプリケーションの開発をするにあたっては勉強しなければならないことは多く、どう勉強すれば良いかはなかなか難しい問題です。初心者向けの解説は比較的たくさんあるのでとりあえずやってみるくらいは何とかなるものの、実戦的な開発がどうなっているかという総合的な話は実務を経験しないとわからないことが多いことでしょう。 ということで、本記事では最近流行の Docker と、そこそこ名前は見かける PHP のマイクロフレームワークの Slim Framework を使って実戦的な Web アプリの開発をしてみる(開発環境を作ってみる)こととします。実装的には、ドメイン実装としてユーザー登録、ログイン、ユーザー情報取得の3つのAPIを実装するところまでを取り扱います。また、静的解析を最大限活用してユニット
サーバサイドWebAssemblyに、かつてのCGIの仕組みを取り込んだ「WCGI」をWasmerが発表。すぐ起動し安全に分離されるWebAssemblyの特長が活きる スタンドアロンのWebAssemblyランタイム「Wasmer」の開発元であるWasmer.ioは、サーバサイドのWebAssemblyフレームワークとして、かつて動的なWebサイトを構築する技術として主流だったCGI(Common Gateway Interface」の仕組みを取り込んだ「WCGI」を発表しました。 Today we are incredibly excited to announce WCGI. WCGI allows running any CGI app with WebAssembly and Wasmer! (...we got Wordpress running! ) Check it out
はじめに 先日、「悪〜いコード」を読む機会がありました。 どんな風に悪いのか、軽くですが分析してみたので、ポエムとして投稿したいと思います。 古のコード 私は普段Ruby on Railsをメインに開発を行っているのですが、ユーザーからの質問に答えるために、普段の開発や保守しているのとは全く別のシステムのコードを読む機会がありました。 そのシステムはPHPで書かれた古いコードでした。ユーザーの質問はシンプルだったので、コードを見れば一瞬で答えは見つかるだろうと思ったのですが、とても読み難いコードだったので30分ほど頭を悩ませながら読むことになりました。 何が読み難いのか 結果、ユーザーからの質問には答えることができたのですが 「僕の30分を返してくれーーー!」と叫びたい気分です。 と愚痴ってしまいましたが、それだけでは何の進歩もないので、何が読み難かったのかを明らかにしてみたいと思います。
※ネタ記事です はじめに 検証する脆弱性 Tips. GPT-3 とは? WAFの実装 環境・必要なもの ソースコード 検証 正常リクエスト XSS GETパラメータ POSTデータ POSTデータ & ヘッダ無し SQL インジェクション GETパラメータ GETパラメータ & ヘッダ無し XXE POSTパラメータ① POSTパラメータ② POSTパラメータ & ヘッダ無し パストラバーサル GETパラメータ GETパラメータ & ヘッダ無し OS コマンドインジェクション GETパラメータ & ヘッダー無し GETパラメータ Log4Shell POSTパラメータ POSTパラメータ & ヘッダ無し POSTパラメータ & ヘッダ無し WordPress のユーザ列挙 ShellShock まとめ はじめに 最先端(?)であるGPT-3を使って 次世代WAF を作っていきます。 以下
PHP 8.1へのアップグレードにまつわるまとめ PHP 8.1へのアップグレードには、mbstringにまつわるマニュアルに記述されない後方互換性のない変更が含まれることがあります。そのことを周知するべく、この記事を書くことにしました。 私てきめんは、PHPカンファレンス 2022にて、「治っていくmbstring 令和時代の文字化け」というタイトルでトークしています。以下スライドも参考にしてください。 Major overhaul of mbstringについて PHP 8.1から、Major overhaul of mbstringと呼ばれる、mbstringの大規模改修の内容が反映されるようになりました。困ったことに、RFC(Request For Comments)やChangelog、マニュアルにない内容で、mbstringを多用するPHPユーザーにとてつもない困惑をもたらすこ
Powerful, programmable open source CI/CD engine that runs your pipelines in containers — pre-push on your local machine and/or post-push in CI Powerful, programmable open source CI/CD engine that runs your pipelines in containers — pre-push on your local machine and/or post-push in CI Powerful, programmable open source CI/CD engine that runs your pipelines in containers — pre-push on your local ma
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分かかっていた
Last Updated on 2025-03-20 11:23 by admin サイバーセキュリティ企業Bitdefenderの報告によると、脅威アクターがPHPの重大な脆弱性(CVE-2024-4577)を悪用して、暗号通貨マイナーやリモートアクセストロイの木馬(RAT)を配布する攻撃が急増している。 この脆弱性は、Windows系システム上でCGIモードで実行されているPHPに影響し、リモート攻撃者が任意のコードを実行することを可能にする。 この脆弱性は2024年6月7日に公開され、CVSS v3スコアは当初9.8(最大10点)と評価されたが、後に6.9に下方修正された。影響を受けるのはPHP 8.3.8未満、PHP 8.2.20未満、PHP 8.1.29未満のバージョンである。 攻撃は主に台湾(54.65%)、香港(27.06%)、ブラジル(16.39%)に集中しており、日本も1
2025/03/21-23 に中野セントラルパークカンファレンスで開催された PHPerKaigi 2025 にて、「php-fpm がリクエスト処理する仕組みを追う」を発表してきました。 発表資料 AI ツールの活用 事前確認 登壇サポート さいごに 発表資料 php-fpm が FastCGI リクエストを処理する仕組みを gdb によるステップ実行デモを中心にお話ししました。 gdb を使ったデモは概ね好評だったようで、仕組みを知ることの楽しさが共有できて嬉しかったです。技術の楽しさを共有できるのはこうしたイベントの良さの一つですね。構想段階ではデモは一部のみにして、スライドによる解説をメインにしようと思っていたのですが、紆余曲折を経てデモをメインにすることにしました。デモは見る側としても面白いですし、やっていても楽しいです。その場の状況に応じて臨機応変に対応しやすいのも良いですね。
毎年なにかを殺さないと気が済まないエンジニアのみんなが書いたなんとかis deadの記事をまとめてみた。 PHP id deadPHPはもうすぐ死ぬPHP is deadその2CakePHP is deadRuby is deadRuby is dead? 2019Ruby on Rails is dead?2019Ruby on Rails is deadRuby on Rails is dead?その1Ruby on Rails is dead?その2Ruby on Rails is deadその3Python is deadReact is deadnodejs is deadJava is deadGCP is deadVim is dead 2013emacs is dead 2014emacs is dead (英訳) 所感 現在使われている技術を死んだとかもうだめとかいうのは
Effective StrategiesFrom API Specs to Code: How MCP Bridges the Gap for Developers Follow our 5-step guide to connect your API specifications directly to AI coding tools using Apidog MCP Server. Eliminate the gap between documentation and implementation while boosting development speed and code quality. TutorialsEmpower Vibe Coding: Publish MCP Supported API Documentation Learn how Apidog's "Vibe
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 をチラ見していたのですが、リアルタイムでどんど
バックエンドエンジニアのクラシマです。 2021/08/25(水)に、本番サーバのPHPを7.4.21 -> 7.4.22にバージョンアップしました。 renovateでプルリクエストが作られるので、追っかけるだけです。 tech.torana.co.jp AMIは前日に作ってあり、当日はLaunchTemplateの向き先を変更するためにterraform applyして、AutoScalingGroupからインスタンスの更新をするだけ。 や~便利になったなぁ、なんて作業してたらSlackが大騒ぎに・・・ 大惨事の一コマ 切り戻し! 急いで切り戻し!と判断したのは良いものの、まさかPHPのバージョンアップ起因だとはその時は思いもよらず。 当日deployしたアプリケーションや、Aurora MySQLの設定変更などを順次戻していきますが、一向に回復せず。 stg環境でも動作が同じだったの
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
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 近年、Dockerは開発分野で一世を風靡し、その革新的な技術でソフトウェア開発を革命的に変えました。当初、Dockerは軽量なコンテナ化技術を通じて開発とデプロイメントプロセスを大幅に簡素化しました。しかし、2024年にはこの技術の欠点が次第に明らかになってきました。 初期の栄光 それほど前のことではありませんが、Dockerは「私のマシンでは動くが、あなたのマシンでは動かない」という古くからの問題をうまく解決しました。そのポータビリティと互換性により、アプリケーションを異なる環境に簡単に移行できるようになりました。しかし、これらの利点
この記事は弁護士ドットコム Advent Calendar 2024 の 21 日目の記事です。 はじめに リーガルブレイン開発室の tsuchiya です。 先日、セッション ID を JWT に内包するという記事を読みました。 "JWT=ステートレス"から一歩踏み出すための考え方 上記記事では、 セッション ID を内包した JWT を活用する ことについて紹介しています。 JWT の性質を最大限活用したもので、非常に共感できる内容でした。 本記事では上記記事をうけて、セッション ID を内包した JWT をセッション Cookie として使用する処理を PHP で実装してみたので、その内容について紹介します。 JWT とは 本記事では、JWT の詳細な仕様に関する説明は省略しますが、本記事を理解するうえで重要になる性質について簡単に紹介します。 JSON Web Token(JWT)
以前少し話題になったLaravelのデバッグモード有効時の脆弱性であるCVE-2021-3129のPoCを読んでいたのですが、思ったより難しくて何でこんなことをしているんだろうと思ったら発見者による解説ブログがありました。読んでみたらバイパスのために思ったより色々していて普通に勉強になったのでメモを残しておきます。CTFerからすると常識な内容かもしれないので、何か間違いや補足があれば指摘をお願いします。 www.ambionics.io 前提知識1 前提知識2 本題 問題点 = によるエラー 日付のデコード ログファイル内の他エントリ バイパス方法 consumedの利用 iconvの利用 パディングの利用 UTF-16のための調整 NULLバイトの回避 最終形 まとめ 前提知識1 上の脆弱性を理解するためにはいくつかの前提知識を必要とするため最初にまとめておきます。 まず、PHPでは外
最近勉強を始めたコンテナ技術に関する基礎的な知識をまとめました。 [訂正と注釈] p.27-30: 「Deployment」内の「Version: 1」 => 「Version: 2」 p.37: 「終了コードをから」 => 「終了コードから」 p.39: 「HTTPSが利用できない」=> AWS上では、SSL終端するLBがサポートされています。https://kubernetes.io/docs/concepts/services-networking/service/#ssl-support-on-aws p.40: 「ユーザがingress controllerをmaster上にセットアップする必要」 => master上にセットアップしなければならないという制約はありません。例えばGCEのingress controller(GLBC)はPodとして動作します。https://gi
Amazon Web Services ブログ サーバーレス LAMP スタック – Part 3: Webサーバーの置き換え 本投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートである Benjamin Smith による寄稿です。 本シリーズの他のパートは以下のリンクからアクセスできます。また、関連するサンプルコードはこちらの GitHub リポジトリにあります。 パート1:サーバーレス LAMP スタックの紹介 パート2:リレーショナルデータベース パート4:サーバーレス Laravel アプリの構築 パート5:CDK コンストラクトライブラリ パート6:MVC からサーバーレスマイクロサービスへ この投稿では、Web サーバーを使用せずにサーバーレス PHP アプリケーションを構築する方法を学びます。 この投稿の後半で、bref および Serverle
TL;DR システム・ソフトウェア製品における品質特性の中でもコードの変更容易性に興味ある人は是非!興味ない人はまたの機会に 👋 「良いコード/悪いコードで学ぶ設計入門」をテーマに、PHP(Laravel)を使用して変更容易性を深掘りします 各トピックごとに「問題のあるコード」例と「改良されたコード」例を提供し、良い設計原則に従う方法を具体的に提示します とても学びのある本ですので、気になった方は是非購入を! はじめに コードは、単に機能を実現するための文字列の集まりではありません。それは、後のメンテナンス、拡張、および改修の基盤となり、製品の品質や開発チームの生産性に直接影響します。悪いコードは、後の段階での修正や追加が難しくなるだけでなく、バグの原因となることが多いです。さらに、新しいメンバーがそのコードを理解する時間が増加します。結果として、プロジェクトの総コストが上昇し、リリース
これからLaravelを利用するのであれば、どのバージョンを使えばよいでしょうか? 現在(2020年9月時点)の状況であれば、6もしくは8のいずれかを選択することになります。どちらを選ぶかはアプリケーションの要件次第です。長期間安定したバージョンを利用したいのであれば6を、最新機能を利用していきたければ8を選ぶことになります。 この選択はさらに、セキュリティフィックス期限が切れた後にも影響します。例えば6を選択した場合、おそらく長期間利用することになるので、次にバージョンを上げる際は最新バージョンとの差異が大きくなり、アップグレードに手間がかかる可能性があります。 一方、8を選択して最新バージョンに適宜アップグレードしていけば、頻度は増えますが、都度の手間は小さくなります。ご自身やチームの開発状況や方針などを鑑みて、どちらを選ぶか検討してください。 なお、Laravelは6以降、セマンティ
PHPやSQLiteなどのサーバサイドを含むWordPressのバックエンドをWebAssembly化し、WordPressのフルスタックをWebブラウザ上で実行する「In-Browser WordPress」が、「WordPress Playground」で公開されています。 これは昨年(2022年)9月にWordPressのコア開発チームが開発中であることを明らかにし、今年1月頃にWordPress Playgroundで公開が始まった、サーバサイドを含むWordPressの試験的なフルスタック実装です。 参考:WordPressのコア開発チーム、WordPressをWebブラウザで実行する「Client-side WebAssembly WordPress」を開発中 「WordPress Playground」でアクセスすると、Webブラウザ上で「In-Browser WordPre
3月24日、サイバーエージェントのエンジニア・クリエイターによる技術カンファレンス「CyberAgent Developer Conference2022」を開催しました。本記事では、「スマホゲーム業界におけるPHPの歴史とLaravel Octaneで広がるこれからのPHP」の様子をお届けします。 目次 ■サイバーエージェントグループのゲーム事業の歴史とPHP ■PHPで培ったもの ■多様化するゲームの要件とサイバーエージェントグループでの事例 ■PHPの変革「Swoole」「Laravel Octane」の登場 ■Laravel Octane Deep Dive ■まとめ ■サイバーエージェントグループのゲーム事業の歴史とPHP まずはサイバーエージェントグループのゲーム事業の歴史とPHPについて振り返ります。サイバーエージェントグループでは2009年からゲーム事業に参入しており、20
こんにちは! はじめまして! 2020年7月からPIECE事業部でエンジニアをさせてもらっています。 野澤です。 今回、PIECEというサービスのリニューアルを担当させてもらったのでその時のことについて書きたいと思います! まだ若輩者なので至らない点が多々あると思いますが フルリニューアルってどんな事したんだろう〜? Hajimariのエンジニアはどんな仕事をしてるんだろう〜? って思った人はぜひ読んで見てください! ※ドメイン駆動設計の説明も書いたのですがボリュームが多くなってしまいました… ドメイン駆動設計について概要知りたいという方は是非読んでみてください。 クリーンアーキテクチャの説明やモデリングのやり方などは説明していません。 ご了承ください。 PIECEリファクタリングプロジェクトの概要 PIECEとはどのようなサービスなのか リニューアルの目的 リニューアル施策 ドメイン駆動
OpenTelemetry を利用して PHP アプリケーションのテレメトリデータを計装する方法をまとめました。 本エントリのコードは下記で公開しています。 github.com OpenTelemetry とは 用語 PHP アプリケーションのマニュアル計装(手動計装) 構成 OTel Collector Jaeger 動作環境 必要なパッケージ PHP コード 設定 実行 PHP アプリケーションのゼロコード計装(自動計装) 必要な拡張とパッケージ 設定 PHP コード 実行 さいごに 参照 OpenTelemetry とは opentelemetry.io OpenTelemetry は、サービスやアプリケーションのテレメトリーデータ(トレース、メトリクス、ログなど)を計装、生成、収集、送信するためのオブザーバビリティフレームワークです。ベンダーニュートラルな OSS であり、CNC
こんにちは。ニコニコ動画開発の多胡です。 今回は PHPerKaigi2023 向けの記事として、2021年に実施したニコニコ動画のコメントサーバーをお引越しした時のことを書いてみたいと思います。 文中の 5 つのフレーズをチャレンジトークンとしてみました。ぜひ探してみてください! (※ 記事の見出しにの横についている「#」はチャレンジトークンではありません。チャレンジトークンは文中に配置されています。紛らわしくてすみません!) 背景 実はニコニコ動画の #コメントサーバーを引っ越した のはこの時が二度目でした。 一度目は2014年から2016年にかけてのプロジェクトでファイルベースのシステムからの引っ越しでした。このファイルベースのシステムは、ニコニコ動画生誕当時から利用されており、当時のコメント参照や投稿にはすでに耐えられない状態になっていました。 そこで、このファイルベースのシステム
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く