概要 創業2期目のスタートアップ株式会社NoSchoolにて、WordPressで開発された自社サービスを、2ヶ月掛けてAWS+Laravel+Nuxt.jsにフルリプレイスした際の技術選定について書きます。 対象読者 Laravelを使ってみたい/使えるライブラリを一通り知りたい AWS構築の全体感を知りたい Nuxt.jsやVuetifyの使用感を知りたい WordPressを脱却したい 技術選定の背景 技術選定と言っても好きな技術を選べばいいというわけではありません。自社が持っている技術力、事業の状況によるところが大きいため、まずは背景としてそのあたりを説明していきます。 先に技術が気になる方はここは読み飛ばして、あとで戻ってきてください ①自社の技術力 CTO @mejileben NoSchoolは創業2期目で2019年6月現在、フルタイムメンバーが僕と社長しかいません。 そして
この記事を書くにあたって Laravel について色々サポートしてくれた皆さまに向けてお礼申し上げます。ありがとうございました。 本記事はクリーンアーキテクチャに対する理解を深めていただくために、「実践クリーンアーキテクチャ」の内容を Laravel で実装して解説するという内容になっています。 記事のゴールは「クリーンアーキテクチャに対する理解を深めてもらう」というものです。つまり、この実装の形は一例に過ぎません。 はじめに 皆さんクリーンアーキテクチャはご存知でしょうか。 そう、こんな図のアレです。 The Clean Architecture: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html クリーンアーキテクチャといえばこちらの象徴的な図をまずは思い浮かべるでしょう。 この図を
2019/8/10 注意 構成を大幅に見直し、記事も合わせて加筆しています。 2019/9/4 Laravel 6 でも動作するように修正を加えました。 2019/9/28 要望が多かったのでNodeコンテナを起動したままの状態に変更しました。 2019/10/30 忙しい人向けの記事を書きました 2019/12/31 appコンテナをPHP7.4にアップデートしました。 2020/5/9 この記事の内容を全て書き直しました 最強のLaravel開発環境をDockerを使って構築する【新編集版】 当記事で使用しているGitHubリポジトリは既にアーカイブされています。使える部分はあるかと思いますが、ご利用は自己責任でお願いします。 概要 docker(docker-compose)でLEMP環境(PHP/nginx/MySQL)を構築し、Laravelの新規プロジェクト作成まで行います。
仕事でやや変則的な認証処理を作る事になったので、Laravelでスキャッフォルドされる会員登録周りの実装がどうなっているのかを調べてみました。 該当箇所のコードを引用しつつ、コメントを付与する形で解説しています。 なお、会員登録周りをカスタマイズする方法を解説している記事ではないので注意してください。 あくまでLaravel内部でどういう処理が行われているのかを調べた記事になります。 調査に使用したLaravelのバージョンは5.7.22です。 関連記事 Laravelの実装調査 ~ログイン編・リメンバーログインもあるよ~ Laravelの実装調査 ~パスワードリセット編~ 今回は会員登録編という事で、以下2ケースをまとめています。 会員登録 メールアドレス確認 それでは見ていきましょう。
✨がついているものは明示的に 6.x 対応確認済み 何もついていないものは,ほぼそのまま読めるはず 🔥がついているものはおそらく 8.x 対応必須 👀は再チェック(2021 作業用) ソースコードリーディング 【Laravel】サービスコンテナ・サービスプロバイダ・ファサード・契約に関する補足資料 ✨ 【Laravel】 Eloquent ソースコードリーディング 第1回 - モデルの取得 👀 第2回 - リレーションの取得 👀 【Laravel】 キュー・イベント・ブロードキャストに関する補足とフロントエンドへの導入 👀 【Laravel】 Redis Queue Worker のソースコードリーディング 👀 【Laravel】 認証や認可に関する補足資料 🔥 👀 【Laravel】 通知に関する補足と拡張の手引き 👀 レシピ・ノウハウなど データベース全般 【Lara
はじめに まずはマニュアルの一読を。 通知 5.7 Laravel 基本的に Laravel のコンポーネントは完成度が高く,あまり自分で拡張する必要は無いが,「通知」に限っては機能拡張しないと実用性に乏しい面が多い。そのため,拡張すべきところとその実装例も一部示していくことにする。 なお通知機能は Laravel の他の基礎機能の上に構築されているため,それらに対する理解も必要だ。以下に関連する記事を示しておく。 【Laravel】サービスコンテナ・サービスプロバイダ・ファサード・契約に関する補足資料 - Qiita 【Laravel】 キュー・イベント・ブロードキャストに関する補足とフロントエンドへの導入 - Qiita 通知のアーキテクチャ 全体の概要図を示す。通知の送信手段としては メール送信 ブロードキャスト送信 データベースレコード作成 などがあるが,ここでは例としてデータベー
コネクションは複数のキューを持つことができる。一般的に,ジョブの種類や優先度によってキューを分岐することが多い。 キューとワーカーは一対一で対応するとは限らず,「どのワーカーがどのキューを処理するか」ということに関して任意の組み合わせが可能である。 総称として,バスを除くこれらの仕組みをまとめて「キュー」と呼ぶこともある。 ジョブのアーキテクチャ ジョブをディスパッチする方法 マニュアルには // このジョブはデフォルトキューへ送られる Job::dispatch(); // このジョブは"emails"キューへ送られる Job::dispatch()->onQueue('emails'); <?php namespace Illuminate\Foundation\Bus; use Illuminate\Contracts\Bus\Dispatcher; class PendingDis
アプリケーション例外は Laravel フレームワークで定義されているもので,HTTPに直接関係ない抽象的な部分ではまずこれをスローすべき。 HTTP 例外は Symfony フレームワークで定義されているもので,Handler::render() でアプリケーション例外から変換して生成するのが一般的。 401 Unauthenticated のほうがどう考えても正しいが,そうなってないのには歴史的な理由があるのだろうか…? 認証のアーキテクチャ Auth ファサードあるいはコンテナから "auth" のエイリアス名でアクセスできる,認証サービスのルートオブジェクトが AuthManager である。ここが認証サービスの中核となる。 Guard が認証手段ごとの実装として存在し,ロジックの多くはここに集約される。 このクラスは Guard 契約 を実装しなければならない。 ユーザを取得して
前回書いた記事では、Eloquent ORMにおける参照系メソッドについて紹介しました。 blog.zuckey17.org その中で、ChunkとCursorという項目について、 こちらについては、僕自信の理解が曖昧なため、もう少し調べる必要があると思います。 詳しく理解されている方がいらしたら、コメントで参考サイトなど教えていただきたいです。 と書いたところ chunk, cursorは発行されるSQLを確認した方がいいと思います というフィードバックをいただいたので、もう一度調べてみました。 ※ 本エントリで利用しているコードはすべて github.com にあります。 目次 目次 (もう一度)Chunk と Cursor ChunkとCursor Cursorを使う Eloquentで実際に発行されるSQL文を確認する toSqlメソッド getQueryLogメソッド Chunk
はじめに Laravel の基礎部分となる非常に重要な4つの概念。基本的にはマニュアルおよびその日本語訳を参照すべし。 サービスコンテナ 6.x Laravel サービスプロバイダ 6.x Laravel ファサード 6.x Laravel 契約 6.x Laravel ここでは(個人的に)それらだけでは不足していると考えられる情報を補うことにする。 サービスコンテナをサービスプロバイダ以外から利用する方法 サービスプロバイダでは $this->app->make() を利用していたが, $this->app にアクセスできない場所では代わりに resolve() または app() というグローバル関数が利用できる。引数を渡す場合は両者とも全く同じ動きをする。
こんにちは。エンジニアの @localdisk です。タイトルの件、最近まで自分も知らなくてマニュアルにも載ってないのでブログに書くことにしました。 具体的にどういうこと? たとえば User クラスと 1:1 の関連がある Profile クラスがあるとします。 <?php namespace App; class User extends Authenticatable { public function profile() { return $this->hasOne(Profile::class); } } 上記のように profile メソッドを定義して、関連の存在しない状態で profile メソッドを呼び出すと null が戻ってきて悲しいことになります。そのことを知らずにメソッドチェインすると…。 <?php // PHP error: Trying to get prop
Posted 12月 10th, 2018 by codechord. 2 Comments Tweet Tweet アドベントカレンダーに触発されて、記事を書いたところ、ちょうど枠に空きが出たので、投稿したいと思います。 Laravelのドキュメントって結構分かりやすく書かれている方だと自分は思っているんですけど、今日はその中でもこんがらがりがちな「認証と認可」について今一度、整理したいと思います。どういうケースに使えるのかとか。 なお、「認証」の方はartisan make:authしたら概ね完成しちゃいますが、認可って便利なので、認可の説明が多いです。 実世界に置き換えて考える 技術的な話に入る前に、日本語の「認証と認可」を理解します。というのも、「認証と認可」という日本語もわからないし、英語の「Authentication、Authorization」もわからないので。。。言語って
Laravel5.5 自動ブラウザテスト Dusk Laravel/Duskで結構簡単にブラウザテストができたのでブログ書きます。 laravel5.5インストール済み、artisanコマンド使用できる環境の前提で進めます。 インストール composerから設定 composer require --dev laravel/dusk:"^2.0" ※最新版はlaravel5.5と合わないので注意 インストール php artisan dusk:install 特にエラーなく、tests/配下にBrowserができていれば成功 ServiceProviderに登録する <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Laravel\Dusk\DuskServiceProvider; cla
はじめに 過去にLaravel(5.6)のリクエストライフサイクルを中心にご紹介しました。 Deep Dive into Laravel 今回はEloquentの基本動作とリレーションについてご紹介したいと思います。その他のコレクションやミューテタなどの機能はここでは触れませんので公式サイトをご覧ください。 [公式サイト]Eloquent https://laravel.com/docs/5.6/eloquent 処理の流れ Eloquentの仕組みを見るために、まずは簡単なCRUD操作を例に基本的な内部処理の流れを見てみたいと思います。 Read 以下のようなモデルからデータを取得する処理の流れを順番に見てみます。 処理の流れを簡略化したものが以下のようになります(実際はもう少し複雑ですが分かりやすくするために省略しています)。 まず、アプリケーションモデルが継承する基底ModelがEl
一応ゲーマー向けチャットのはずだけどいつの間にかLaravelやVue.jsの公式チャットもDiscordに移行していた。 https://laravel.com/docs/5.7/contributions https://vue-land.js.org/ Reactがメンバー多すぎてDiscordに移行したのが最初? https://reactjs.org/blog/2015/10/19/reactiflux-is-moving-to-discord.html APIを色々試してみる。 https://github.com/kawax/discord-project テスト用チャット 誰でも参加可能。ボイスチャットは不可。Laravelチャンネルも作ったので人が増えたら何か自動で情報流すかもしれないけど増えるとは思ってない。 (終了) 環境 Laravel 5.7 AWS Forge
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く