Macユーザーの皆さんにはお馴染みのHomebrew。
Macの初期設定時のみならず、日々新たに便利なコマンドを見つけてはbrew installしていることと思います。
そんなお馴染みのHomebrewですが、裏側はどんな仕組みになっていて、コマンド自体はどこからダウンロードされているのかはご存知でしょうか?
実はこれ、とても簡単な仕組みになっていて、誰でも自分のGitHubリポジトリを通して自作のコマンドをHomebrewで配布することができます。
このLTでは、実際にPHPでCLIツールを作ってHomebrewで公開するまでの流れをお話しします。
自作のコマンドをHomebrewで公開して、世界に羽ばたきましょう!
Macで複数バージョンのPHPを使い分けるのって意外と難しくないですか?
Docker経由でしかPHPを使わないみたいな猛者スタイルで行ければいいのかもしれませんが、
パフォーマンスや開発体験の問題からローカルのPHPを使いたい事情もあると思います。
phpenvと.php-versionファイルを併用すればディレクトリごとに使用するPHPバージョンを指定することもできますが、
このソリューションはいざ導入しようとするとYak Shavingの嵐が待っていて(実体験)非常に面倒だったりします。
というわけで、このLTでは私がMacのローカル環境で複数バージョンのPHPを楽に使い分けるために実際にやっていることを5分でサクッとお伝えします。
実際に運用していてまったくストレスを感じていない方法なので、ちょっとでも困っている人には明日からすぐにお役立ていただける内容だと思います!
令和になっても相変わらず紙の書類の需要は大きく、Webアプリ開発においても帳票印刷機能は多くの案件で要求されます。
しかし、これがとにかく面倒くさい。
帳票印刷機能を実装したことのある方には強く共感していただけると思います。
そんな面倒で難しい帳票印刷ですが、実は私は既に数年前に最強無敵のソリューションを編み出し済みです。
という条件を満たせる唯一(当社調べ)の方法です。
このトークでは、この至高のソリューションを具体的に解説します!
API Platformは、SymfonyをベースとするPHP製のオープンソースAPIフレームワークです。
Symfonyアプリケーションにアトリビュートを1行追加するだけで一瞬でREST APIとOpenAPIドキュメントを生成できてしまう優れもので、
Symfonyのエコシステムにおいてはすでに決定版と言える存在となっています。
このトークでは、API Platformの導入方法から、State Provider・カスタムコントローラ・State Processorといった重要な基本機能の概要までを、
実際に動作するデモをお見せしながら丁寧にご紹介します。
皆さんにAPI Platformの概要を知っていただき、少しでも興味を持っていただければ幸いです!
API Platformは、SymfonyをベースとするPHP製のオープンソースAPIフレームワークです。
Symfonyアプリケーションにアトリビュートを1行追加するだけで一瞬でREST APIを作れてしまう優れもので、
Symfonyのエコシステムにおいては既に決定版となっています。
しかし、ある程度複雑なことをしようとすると途端にフレームワークについての深い理解が求められたり、
痒いところに手が届かず強引なワークアラウンドが必要になったりするという面もあり、入門と実戦の間には大きな隔たりがあります。
このトークでは、API Platformの導入方法から基本機能の概要、さらには実践投入に向けた各種ワークアラウンドや実装テクニックを、
実際に動作するデモをお見せしながら丁寧にご紹介します。
API Platformの実戦投入、あるいはその検討の一助になれば幸いです!
世の中には色々なフレームワークがあります
何か特定の世界に限りません
例えば、マーケティングの世界で有名なPPM分析もそう呼ばれたりします
フレームワークとそれ以外は、何が違うのでしょう?
プログラミングでいえば
「フレームワークの名前を複数挙げて」との問いには簡単に答えられても
「それはどうして?」の判断に迷う人もいるかとも思います
何がフレームワークなのでしょう
それ以上に重要なのは、”なぜ”フレームワークなのでしょう
これがあることで、開発者の仕事や思考は、どう変わりますか?
一緒に探ってみましょう!
一緒に働いていて「この人に相談したらどうにかなる」って人、いますよね。
この「どうにかする力」って何なんだろう。
力を持ってる人に聞くと「気合」「経験」「勘」と言った回答が来ることが多いです。
本LTではこれをもう少し噛み砕き、「どうにかする力」の正体に迫ります。
みんなで「どうにかする力」を身につけていきましょう!
小田原っこ: 現在小田原に住んでいます
パフォーマンス改善と聞くとどんなことを想像するでしょうか?
大半の人はクエリチューニングであったり、ロジック改善であったり、キャッシュ化であったり
元の仕様を変えずに速度向上をする、というイメージがあるかと思います。
ISUCONなどはまさにこれで、元のテスト(ベンチマークツール)が通るように改善を行っていきます。
しかし仕様から変えて良いものであれば、それは仕様再検討から実施することで圧倒的なパフォーマンス改善を実現できると私は考えています。
本セッションでは
このあたりをお話できればと思っております。
小田原っこ: 現在小田原に住んでいます
PHPは現在のところ、毎年何らかの新バージョンをリリースしています。
大体毎年11月末〜12月にリリースされることが多いです。
さて、PHPカンファレンス小田原の時点では4月です。
このときにはPHP Internalsはどうなっているのか、新機能はどうやって決まっているのか、
alphaとかbetaとかって何?などをお話します。
ぜひ最新のPHPのキャッチアップに繋げていきましょう。
アブストラクトマシマシ・シンタックス少し・ツリーマシマシ。このような呪文を見かけたことはありませんか。そう,二郎系ラーメンです。この呪文を「コール」と呼び,ラーメンの着丼前のトッピングとしてヒアリングされます。一見,二郎系ラーメンのコールは複雑そうに見えますが,ある一定の法則性があります。そしてスタッフは法則性に基づいて解釈し,ラーメンにトッピングをします。似たようなのを見たことがありますね。そう,お察しの通りプログラミング言語の構文解析器です。例えばramen(1, 2)という構文はramenという関数をコールし,1と2という引数を与えます。つまりトッピングです。このようにramenという関数の引数は 2つで…といった意味を与えるのが構文解析器です。
本トークでは,PHPで構文解析器で専らよく使われるAST解析を実装するにはどうしたらよいか,二郎系ラーメンのコールを題材として解説します。
エンジニア同士の繋がりを作る上でコミュニティの存在は重要になってきています。
私が異業種からIT業界への転職した時に、業界内の知り合いが少なく孤独感を感じていました。
そのような背景からエンジニア達が一緒に勉強したり、情報共有できる場を作りたいと感じるようになり、
プログラミング学習コミュニティ「ねこプロ」を立ち上げて2年ほど運営しておりました。
活動内容は、LT会や交流会、勉強会を開催するなど多岐に渡ります。
コミュニティ運営をすることで学習に対するモチベーションを保てたり、繋がりの輪が広がるなど良い面もありましたが、課題も多くありました。
本トークではコミュニティ立ち上げから閉じるまでに経験したことを運営者目線でシェアすることで、
コミュニティ運営の魅力とリアルをお伝えします。
コミュニティに興味を持つ人が増えることで業界がより盛り上がれば素敵だなと考えております。
何度も遭遇する PHP の「Allowed memory size of ...」。しかし、結局解決方法がわからず、最後には「ini_set('memory_limit', -1)」でその場を凌ぐという苦い経験をした方も多いのではないでしょうか。
PHP ではガベージコレクションもそれなりに発達しており、メモリを気にしないで書けるから良いと思っている人も少なからずいらっしゃると思います。
しかし、裏を返すと、メモリについてあまり考える機会がないとも言えます。PHP7.4 から弱参照といった機能も入り、メモリ管理に少しずつ関心が寄せられてきているのではないかなと思います。
そこで本トークでは、PHP でメモリ管理から逃げないようにするためには,PHP のメモリ管理の仕組みから,どのようにすれば省エネにメモリを使えるか、書き方のヒントまで含めてお話できればと思います。
みなさん使っていますか?strace。
そうですね、コンテナ全盛期とも言えるこの時代、なかなか使う機会はないと思います。私もです。
ただ、あると思うと使いたくなるのが人情というものです。
そうです、コンテナにログインしてしまえば使えてしまいますね。
このトークでは、
というはじめの1歩を話していこうと思います。
ローカル環境のデータベースこんなことにお悩みではないですか?
・開発しているうちにデータがめちゃくちゃになってしまって、元に戻せない。
・「今」のデータの状態を保存して、何かあったときその状態にパッと戻せるようにしたい。
・他のメンバーのデータベースを自分の環境にコピーしたいけど、自分のも消したくない。
・データベースのデータの状態を、何種類も持っておいて、いつでもサッと切り替えしたい。
これらのお悩み、すべて解決できます。
まるでゲームのセーブポイントのように、
saveコマンドを打てば、すぐにバックアップされ、loadコマンドを打てば、すぐに再現されます。
shareコマンドを打てば、他のメンバーにシェアすることもできます。publicにすることも、privateにすることもできます。
今回、こちらのライブラリの配布と、ライブラリの仕組みの解説をさせていただきたいと思います。
私自身が経営する株式会社ダイビック(ディープロ)が行っているITエンジニア育成プログラムにより日本とアフリカラテンアメリカで行っている育成活動をご紹介し、その未来への展望について語るトークです。
PHPのアプリケーションの開発、楽しい、色々なツールやライブラリに支えられてる、 マジ感謝・・・そんな日々です。
皆さんは普段お世話になっているライブラリ、一体どこまで「理解して」使っていますか?
アプリケーションフレームワークに、PHPUnitなどのテスティングフレームワーク、Composer、PHPStanにRectorに・・・
「普段から使っているよ!」「使い方はわかる!」という気持ちでいると、ふとした時に「何このエラー!」と悩まされたりした事はありませんか?
どうすればもっと仲良く・・・そうです、ソースを読めば良いのです!自分で作れば良いのです!
PHPを使った開発に欠かせないツールについて、「普段使っているコマンド」を起点として、実際にコードリーディングをしていく際のポイントをお伝えします。
その上で、「概要を掴んだ後に"自分で劣化版を作ってみる"」学習法を紹介します。
PHP8.3が2023年11月リリース予定です。
PHPカンファレンス小田原2024が実施される頃には、皆さんの理解も進んでいることでしょう。
一方ですべての方がその機能を理解しているとは限りません。
今回はそのPHP8.3の機能を、小田原の地で一緒に振り返りましょう。
あと話者の趣味でパフォーマンス比較も行います。
PSR-15はPHP-FIGが勧告するHTTPハンドラとミドルウェアの標準仕様です。仕様の基盤となるPSR-7とともに非常に簡潔なインターフェイスの素晴らしい仕様です。
このトークではPSR-15がどのようにミドルウェアの仕組みを提供するのか、シンプルすぎるPSR-15とPSR-7の実用アプリケーションでの利用しにくさを改善できるかの試み、そして拙作のPSR-15ディスパッチライブラリHakoneの設計思想についてコンパクトにお話しいたします。
プログラミング界の十徳ナイフ、正規表現を使いこなせていますでしょうか!
正規表現は文字列処理において多くのタスクをこなせ、テキストエディタなどPHP以外の場でも利用できる汎用性の高い道具です。
しかしながら正規表現を自信をもって使えるようになることにハードルを高く感じる初心者も多く、曖昧なまま使い続ける中級者も多い技術でもあります。
このトークでは初心者向けの正規表現入門から、中級者にも役立つテクニック、Unicodeとの関連と正規表現の罠まで含めて、基礎を固めて使いこなせるようになるヒントをお伝えします。
PHPerの世界でもwhatやwhyが大事だ、howはなんでもいい、と言われるようになりました。
たしかにwhyやwhatはとても大事で、howは所詮howです。
しかし、howを軽視しすぎるのはおすすめできません。
「思考に気をつけなさい。それはいつか言葉になるから。言葉に気をつけなさい。それはいつか行動になるから。(後略)」というマザーテレサの名言にもある通り、howは知らず知らずのうちにあなたの設計方針に影響を与えてしまうのです。
howがどのように設計方針に影響を与えるかの実例をいくつか紹介した後、その対策についてお話しします。