皆さんは、PHPの file_get_contents()
関数をご存知でしょうか?
とっても便利な関数です!
これを利用すると、file(ファイルでなくても可)をget(POST等でもOK)してcontents(つまり全て)を取得する事ができます。
$contents = file_get_contents('https://exmaple.com');
これだけで、インターネットからデータを取ってこれるのです!
「1発で何でも出来る」という感じが、最高にPHPっぽいなと感じます。
その一方で、あらゆるリソースにたった1つのコマンドでアクセス出来る世界観は、everything-is-a-fileの原則に則ったUnix哲学的な価値観も感じるところです。
このとっても便利な関数について、門を開いてみませんか?
file_get_contents
を使ってみようfile_get_contents
は何をしてくれるのか・何をしないのかfile_get_contents
とPHPらしさ、Unixっぽさfile_get_contents
でサーバーを立てよう (※ 実装イメージ )PHP に FFI が導入されてから、どういう用途で使えばよいか悩んでいる PHPer も多いかと思います。
また、PHP FFI のマニュアルも理解しやすいかというと、ハードルは若干高いと言えるのではないでしょうか。
そこで本トークでは、PHP FFI を介したモジュールの呼び出し方の解説、自作 の C/C++ のモジュールの作成からの呼び出し方、 そして libusb と呼ばれるモジュールで USB で接続された機器の一覧を取得する実践的な方法など、どのように FFI を活用していけばよいのかを解説します。
レガシープロダクトを改善する仕事は好きですか?
長いPHPer人生の中で、仕事や副業で出会ったレガシープロダクトのバグ修正やリファクタをした経験から、実際にうまく行ったリファクタのやり方とうまく行かなかったリファクタのやり方をサンプルコードを実際に改善する様子を実演しながら解説します。
みなさんはシステム障害が起きた時、どのように調査を行いますか?
根拠となるデータを元に仮説を立てて検証するというのがセオリーですが、時に必要なデータが無くて行き詰まったり、経験則や自身の勘に頼ってしまいがち、という事もあると思います。
ログ・メトリクス・トレースはシステムの状態を可視化するデータ(テレメトリーデータ)の代表格で、これらを上手く活用することにより事実に基づいて仮説・検証プロセスを回すことができます。このようにして、どれだけ複雑なシステムであっても理解しやすい状態にすること、いわゆるオブザーバビリティを高めることが近年注目されています。
OpenTelemetryはこれらのデータを収集するためのツールとして登場し、これによってオブザーバビリティを高めやすくなってきています。そして、OpenTelemetry PHPが最近GAされ、PHPアプリケーションにもこの波がやってきました。
本セッションではまずOpenTelemetryについて紹介し、サンプルアプリケーションを通じてPHPでテレメトリーデータを収集・分析する方法を見ることで、オブザーバビリティを体感する場にできればと思っています。
オブザーバビリティ入門したい方
オブザーバビリティは知っているが、PHPでの実践方法について知りたい方
Web ApplicationをPHPで記述するときに, 多くの場合, 文字列の正規表現を扱うコードは必要です. また, 正規表現を使ったコードは重要な部分を担うことが多いです. 例えば, uriのroutingをする時に正規表現を使うことがあります. また, ユーザー名やIDに使うできる文字を制御するのに用いることもよくあるケースです.
しかしながら, 同時に私たちプログラマを最も悩ませる問題の一つでもあります. urlやemaliのValidationに苦労された経験を持つ方は多いのではないでしょうか?
その理由としてよく「記述した正規表現パターンの理解のミスが起こりやすいこと」や「正規表現パターンを記述したコードが長くなってしまうこと」が挙げられます.
本セッションでは難解な正規表現を扱うコードを理解しやすくする方法を紹介します. 正規表現が大好きなみなさんもちょっと苦手意識のある方も是非お越しください!
正規表現を使ったコードを書いたことがある方
正規表現の実用に興味のある方
正規表現を扱うコードを理解しやすくする手法
正規表現の使い方などの初歩的な話
正規表現の成り立ち
PHPUnitのメジャーバージョンアップ、9.xから10.0の移行には「大きな変更が含まれている」という印象を持っている人も多そうです。
とりわけ、PHPUnit\Framework\TestCase::at()
や PHPUnit\Framework\MockObject\Rule\ConsecutiveParameters()
のdeprecatedについては、移行に際して不安を感じる声もチラホラと耳にします。
ここでの頭痛の種は、「今まで使ってきたテストコードを、どう置き換えればいいか」というものです。
フレームワークのAPI的な意味での「使えなくなる」ではなく、テストの意図と実現方法の見直しを促すという意味で、本当にBraaking Changeと言えます。
PHPUnitは、これまでも「利用者に適切なテストコードを書くことを促す」ように進化をしてきました。
では、 at()
withConsecutive()
のない世界が来ることで、我々は何を得られるのでしょう?
この変更をきっかけとして、「どんなテストが良い単体テストなのか」について考察します
サーバーレスは少しずつ浸透していっています。
そんな中でサーバーレスにおいて、決まったパターンがあることも共有知となってきました。
しかしPHPサーバーレスにおけるサーバーレスパターンとはどのようなものがあるのでしょうか。
今回はBref x Laravelを利用することで、更に制約の力を強めた、AWSにおけるサーバーレスパターンの適用についてお話します。
この話を聞くことで、あなたがPHPを利用したサーバーレスラーになる為の「熱」になれれば幸いです。
・想定する聴講者
- サーバーレスに興味のあるPHPer
- AWSを利用しているクラウド系エンジニア
- LaravelとAWSの統合に興味のある方
- Brefが好きな方
・お話する内容
- AWS Lambda x Bref x Laravelを中心にしたサーバーレスパターン
- AWS Lambda x Bref x Laravelにおけるインフラ構成
- モノリスになった AWS Lambdaを上手く非同期的に利用する手法
そして あなたをサーバーレスの世界に引き込む「熱」
2023年10月16日のChromeアップデートによりHTTPSファーストモードがデフォルトで有効になり、httpでアクセスするとhttpsに自動的に誘導されるようになりました。
このモードによってHSTS(Hypertext Strict Transport Security)ではないサイトでもhttpでアクセスするとChromeが勝手にhttpsにリダイレクトします。(特定条件で)
リダイレクトもWebサーバにリクエストを飛ばさずにChrome内部で307リダイレクトのレスポンスを擬似的に返します。
このようなChromeの独自世界観がインターネットに溢れ出すようになった令和の時代を生き抜くため、今回のChromeの動作の条件、動きの詳細を解説します。
参考ツイート
https://twitter.com/cakephper/status/1719275453943525571
参考ブログ
https://blog.ichikaway.com/entry/chrome-307-https-first
複数のプロダクトやサービス事業を展開している企業で一度は言われる「共通基盤を作りたい」。
近年、エンジニア側も「よし、共通基盤だ!マイクロサービスを作ろう」と安易に呼応してしまうことがでてきました。このように始まったマイクロサービス開発では、往々にして失敗したマイクロサービスが負債として残り、エンジニアチームは「マイクロサービスはダメだ」という感想を持ってしまいがちです。
「共通基盤だ!」と言い出したとき、本当にマイクロサービスが必要だったのでしょうか?
前職で数年にわたってマイクロサービスを開発・運用し、PHPerKaigiでマイクロサービスを布教したこともある私ですが、現職では「共通基盤だ!」にNOを突きつけています。
共通基盤というマイクロサービスがほしくなる動機を解きほぐし、マイクロサービス採否ジャッジの基準、ニーズをマイクロサービス以外の方法で満たす方法についてもお話しします。
PHP を使っていると、予期しない、意図しない動作をすることがあります。
大抵は自分の書いたプログラムのミスですが、まれに PHP 本体のバグや意図しない挙動の変化であることもあります。
今回は "バグかな?" と思ったときの迅速な検証方法から、実際に php-src に報告を行うまでの流れを実例をもとに紹介させていただきたいと思います。
運用で回避せず、レッツコントリビュート!
われわれPHPerが主な関心領域としているPHPですが、並居るプログラミング言語のなかでも特に毀誉褒貶の激しいものの一つといえます。
HTMLに特化しているのかといえばそうではなく、汎用プログラミング言語として使えるがWebに特化した機能は多く、動的言語で型がないと思わせつつ堅く書くこともできる… PHPは見る人によってさまざまな表情を見せる言語です。
そんな謎言語PHPの言語仕様と実行環境について歴史的背景や他言語との関わりを交えて語り尽します。
みなさんは何かしらの VM (Virtual Machine)を作ったことがあるでしょうか。私自身は過去に PHP で JVM (Java Virtual Machine) を作ったことがあります。
現職は Ruby on Rails がメインの企業です。Rails どころか Ruby 初心者である私が Ruby の気持ちを理解するにはひと工夫必要だと考えました。
そこで,過去に PHP で JVM を作ったことがある経験を活かし,RubyVM を自作して Ruby の気持ちを理解し学習速度を加速させようという考えに至りました。
本トークでは PHP でどのように VM というものを作るのか,そして RubyVM はどのように作っていくのかを,初心者でも「ちょっとわかったかも」と思えてもらうことをゴールとして解説します。
privateメソッドのテストを書くか書かないか問題はよく話題にあがるかと思います。
実は、私もかつてはprivateメソッドのテストをたくさん書いていた時代がありましたが、今はprivateメソッドのテストは書かずにテストを書いています。
自分の思考の整理をするのに繋がった「単体テストの考え方/使い方」という本の内容からも引用しつつ、
実体験をベースに「なぜprivateメソッドのテストを書かないのか」というところをお話します!
トークで話す内容