「 LaravelDB.com 」
https://qiita.com/daisu_yamazaki/items/3755467b39ef158b81a3
を参考に見てください。『Laravelを使う人を幸せにしたいという思いから作った』アプリケーションです。
これは「あったら便利だ!!」の思いから作った始まりから〜完成するまで、そして操作方法や勘所など全て話せたらと思います。
一念発起して作り始めたはいいが、、、カラムとMigration等の想定外のことやCRUD生成処理の想定外など結構大変な開発でした。
操作方法含め、お話できればと思います。
Larastanは、Laravel用のPHPStanラッパーです。
https://github.com/nunomaduro/larastan
Laravelで何も考慮せずPHPStanを実行すると、ファサードを使用している箇所などでエラーが出てしまったりします。
そこでLarastanを使うと、Laravelに最適化された状態で静的解析をかけることができます。
今でこそ PHP は CakePHP, Laravel など多岐にわたるフレームワークがあり、私達開発者はそれぞれのルールに則り言語の仕組み自体をそこまで知らなくても開発ができるようになりました。
品質を担保するためにはチーム開発では、より最適化されたコードをいかに多く生み出せるかだと私は考えています。ルールが存在するということは、そのフレームワークに最適化されているということとも捉えることができます。とても開発しやすい時代になったと考えます。
しかし、昔の PHP はどうでしたでしょうか。 PHP 4 の時代、私達はどのようにしてサービスやプロダクトを作ってきたのでしょうか。そして、 PHP 5 が登場したあの時の感動、 create_function から無名関数に次第に置き換わっていく快感、配列のシンタックスが array から [ と ] に変わった瞬間、そして PHP 7 が登場し、PHPer 達が驚愕したあの瞬間。
そんな PHP 4 の時代, PHP 5 の時代 そして PHP 7 に移り変わる歴史的な瞬間、それらを昔話を交えながらお話しようと思います。
今でこそ PHP は CakePHP, Laravel など多岐にわたるフレームワークがあり、私達開発者はそれぞれのルールに則り言語の仕組み自体をそこまで知らなくても開発ができるようになりました。
品質を担保するためにはチーム開発では、より最適化されたコードをいかに多く生み出せるかだと私は考えています。ルールが存在するということは、そのフレームワークに最適化されているということとも捉えることができます。とても開発しやすい時代になったと考えます。
しかし、昔の PHP はどうでしたでしょうか。 PHP 4 の時代、私達はどのようにしてサービスやプロダクトを作ってきたのでしょうか。そして、 PHP 5 が登場したあの時の感動、 create_function から無名関数に次第に置き換わっていく快感、配列のシンタックスが array から [ と ] に変わった瞬間、そして PHP 7 が登場し、PHPer 達が驚愕したあの瞬間。
そんな PHP 4 の時代, PHP 5 の時代 そして PHP 7 に移り変わる歴史的な瞬間、それらを昔話を交えながらお話しようと思います。
皆さん、Laravelは大好きですか?私は大好きです。
皆さん、オレオレフレームワーク使ってますか?私は使っています。
今やPHPでWEBアプリケーションを作るならLaravelが候補に挙がるくらいには有名になりましたが、それはあくまでも新規案件のお話。
今回ご紹介するのは、レガシーなPHPアプリケーションにLaravelを導入したお話です。
しかしながら、一言に導入すると言っても、それは簡単な話ではありません。
いきなり全部のコードを入れ替えるわけにもいきません。
既存のサービスを止めるわけにもいきません。
Laravelは導入するけど、既存の資産はそのまま使いたい…!
などなど、いろいろな要望や懸念があるかと思います。
そんな中、私が担当するPHPアプリケーションでLaravelを導入するために取った戦略とは…!?
本セッションでは、以下のことを実際の実装を見つつハートフルにお伝えする予定です。
Laravelをレガシーアプリケーションに導入してみたい方、どんな構成になっているのか気になられた方、どなたでも構いません。
ご興味を持たれた方はぜひご参加ください!!
※LTバージョンです。
皆さん、Laravelは大好きですか?私は大好きです。
皆さん、オレオレフレームワーク使ってますか?私は使っています。
今やPHPでWEBアプリケーションを作るならLaravelが候補に挙がるくらいには有名になりましたが、それはあくまでも新規案件のお話。
今回ご紹介するのは、レガシーなPHPアプリケーションにLaravelを導入したお話です。
しかしながら、一言に導入すると言っても、それは簡単な話ではありません。
いきなり全部のコードを入れ替えるわけにもいきません。
既存のサービスを止めるわけにもいきません。
Laravelは導入するけど、既存の資産はそのまま使いたい…!
などなど、いろいろな要望や懸念があるかと思います。
そんな中、私が担当するPHPアプリケーションでLaravelを導入するために取った戦略とは…!?
本セッションでは、以下のことを実際の実装を見つつハートフルにお伝えする予定です。
Laravelをレガシーアプリケーションに導入してみたい方、どんな構成になっているのか気になられた方、どなたでも構いません。
ご興味を持たれた方はぜひご参加ください!!
※15分バージョンです
みなさん、PHP で乱数を作成する際に何を使ってますか?それって本当に安全ですか?
PHP は乱数生成器をたくさん実装されていますが、いったいどれを使えばいいでしょう。
「rand()」「mt_rand()」「random_int()」「random_bytes()」「openssl_random_pseudo_bytes()」これらの違いを皆さんはご存知でしょうか。
そもそも乱数とは何か?安全な乱数とはどのような基準なのか?どのような実装なのか?といった、乱数に関する基礎知識の解説を交えながら、PHP における乱数生成アルゴリズムについて解説します。
みんなで PHP 実装における闇の片鱗に触れましょう。
Laravel の Blade 、便利ですよね。テンプレートエンジンとしても優秀だと私は思います。
そこで、 Blade を自作してみたいと思ったことはありませんか? 今回は View ファイルにかかれている HTML をを字句解析していき、 Blade のようなテンプレートエンジンを Laravel を使わずに素の PHP だけで実装するお話をします。
もちろん Blade だけに関わらず、 Smarty など他のテンプレートエンジンのような形にすることも可能です。
Laravel の Blade 、便利ですよね。テンプレートエンジンとしても優秀だと私は思います。
そこで、 Blade を自作してみたいと思ったことはありませんか? 今回は View ファイルにかかれている HTML をを字句解析していき、 Blade のようなテンプレートエンジンを Laravel を使わずに素の PHP だけで実装するお話をします。
もちろん Blade だけに関わらず、 Smarty など他のテンプレートエンジンのような形にすることも可能です。
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
PHP はそれ以外の用途としてバイナリを書き込んで何かしらを行うことも可能だったりします。
例えば、java が実行する class ファイルのようなバイナリを PHP で生成して、 java コマンドで動かすことも可能です。
言い換えると java コマンドで動くバイナリファイルを PHP のみで生成する、つまりコンパイラを作るということです。
本トークでは、 class ファイルの構造やオペコード(プログラムを実行する命令のこと)を PHP だけを使い、
どのようにしてファイルに書き込んだら java コマンドで動くかをお話できたらと思います。
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
PHP はそれ以外の用途としてバイナリを書き込んで何かしらを行うことも可能だったりします。
そう、例えば PHP のソースコード自体を PHP を使って Java のクラスファイルにコンパイルし、java コマンドで動かすようにすることも可能です。
言い換えると、 Kotlin や Scala のような JVM 言語を PHP のソースコードを用いて PHP で実装するということです。
本トークでは、 PHP を AST (抽象構文木、簡単に言うとソースコードがプログラムで理解されやすいように最適化した状態) に分解し、それを Java のクラスファイル(バイナリファイル)にコンパイルしてから java コマンドで動かすまでの一連の流れをお話できればと思います。
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
PHP はそれ以外の用途としてバイナリを読み込んで何かしらを行うことも可能だったりします。
例えば mp3 の ID3 タグを取得する, zip を解凍する, jpg のメタデータを取得する、などなど。
しかし、これらは一般的にはライブラリや拡張機能が提供されていて、刺激が少ないかと思います。
そんな中で、今まで誰もやったことがなさそうなこととして PHP でバイトコードにコンパイルされた Python を動かしてみたいとは思いませんでしょうか。
私は動かしてみたいと思います。本セッションでは PHP でどのようにしてバイトコードにコンパイルされた Python を動かすのかをトークできればと思います。
PHP 7.4 より、PHP をビルドする際に使用されるオプションである --enable-zip が正式にバンドルされなくなりました。
これにより、 PHP で zip を展開したり、読み込んだりすることにハードルが上がってしまいました。
libzip は PHP 7.3 より、libzip 自体の野良ビルドが必要であったり、 cmake のバージョン自体もあげないといけなかったり、必要なモジュール導入のハードルが高くなっていました。
PECL に移ったとはいえ、ビルドするのはなかなか敷居が高いです。ではどうしたらいいのか。何もモジュールにこだわる必要はありません。 PHP 単体で zip ファイルを読めばいいのです。本セッションでは、 PHP でどのようにして zip ファイルを読み込むのかをトークさせていただければと思います。
ペット、かわいいですよね。可愛すぎて「常時見ていたい…」そのような気持ちになることはありませんか?
ありますよね。更に、ストリーミングで常に見れたらうれしいですよね。
そんなニーズに答えるため、 PHP の拡張の Swoole と Raspberry Pi を使用して、ストリーミング再生で常に最新の情報が送られるようなハムスター監視システムをつくってみました。
実装までの過程で、Swoole や Raspberry Pi で乗り越えた壁や、どのような形で開発をしたのか一つのドラマとしてトークします
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
しかし、PHP は Web 系以外、例えばそう、 JVM などを実装することも可能なのです。
JVM とは、 Java Virtual Machine の略で、 中間コードにコンパイルされた class ファイルを動かすための仮想マシンのことです。
JVM は JVM Spec と呼ばれる Oracle が公開しているドキュメントがあるため実は PHP でも開発することは可能です。
30 億のデバイスで PHP が走ると思うとワクワクしますよね。
本セッションは PHP という言語の枠組みの中でどのようにして JVM のようなスタックマシンを実装したのかをトークさせていただきつつ
実際に Hello World を出力するところまでをお話できればと思っております。
LaravelのREST API構築で、Firebaseを活用し、シンプルで高速なアプリケーション開発を行うフローを紹介します。
みなさんはLaravel Artisanで使われているcommandは使われたことはありますか?
'artisan list' を実行すると、Artisanに備わっている便利な機能があり、使われているかたも多くいると思います。
その中で、特にLaravelの公式でも最初に説明しておきながら一番不思議な動きをしているのが 'command:make' です。
'command:make' が何者なのか、何をするものなのか、何ができるのかについてお話したいと思います。
特にバッチ系の実装をLaravelを介さずに行っている方に参考にできる情報を発信できればと思います。
バックエンドの勉強会がなかなかない広島で、Laravelをもっと盛り上げようと思い、Laravel.hiroshimaという勉強会コミュニティを作成しました。なんでそんなことをしようと思ったのかということや、そこでどんなことを行っているのかということ、これからどんなことを行いたいかということを中心に話したいと思っています。また、地方でも、もっとLaravelを推進してもらえるよう、5分という短いなかで伝えられることをたくさん伝えたいと思っています!!