「クリーンアーキテクチャ」とは、DDDの文脈における「ドメインモデル」をシステムの中心にすえ、「入力」「永続」「出力」などの多方面で抽象化を行うことで、高度に変化への強さを獲得できるアーキテクチャです。昨今の変化の早さに対応するべく「アジャイル開発」や「マイクロサービス」が叫ばれているように、「クリーン…
「クリーンアーキテクチャ」とは、DDDの文脈における「ドメインモデル」をシステムの中心にすえ、「入力」「永続」「出力」などの多方面で抽象化を行うことで、高度に変化への強さを獲得できるアーキテクチャです。昨今の変化の早さに対応するべく「アジャイル開発」や「マイクロサービス」が叫ばれているように、「クリーン…
この記事は Laravel Advent Calendar 2020 - Qiita 最終日の記事です。 TL;DR DDD や "真の" クリーンアーキテクチャは, Web 業界における大抵の現場ではオーバースペックだし,導入しても全員がついてこれるとは限らない app/UseCases ディレクトリだけ切って,ドメインごとに単一責務なクラスを置くと使いやすいよ ActiveRecord 指向のフレームワークで Repository パターンを無理に導入すると死ぬので, UseCase で Eloquent Model の機能を使うことを恐れるな はじめに Zenn では初投稿です。日本の Laravel コミュニティではもうお馴染みのようで実はあまり顔を出していない(?) @mpyw と申します。オンラインサロンの火付け役となった Synapse が最初の仕事でしたが,就職後すぐ会社が
来年始発売予定のゲームのためにPS4を買いました。ふちがみです。 今回はPHPフレームワーク「Laravel」でWebsocketを扱うための Broadcast機能についてご紹介したいと思います。 (で、結局何ができるの?ということを手っ取り早く知りたい方は、このあたりまで読み飛ばしください) (とりあえず、動いているところを見たいという方は次回の記事まで読み飛ばしください) WebsocketサーバについてはLaravelのフレームワークに含まれていないため、別途用意をする必要があります。 上記のドキュメントの「ドライバ要求」節では、主に下記の2つの方法が紹介されています。 Pusherというクラウドサービスと連携する方法 RedisとSocket.ioを使って自分でサーバを立てる方法 ただしどちらも詳細な解説がされておらず、一読しただけでは掴みずらいと感じました。 今回は「Larav
2016-02-19 追記 Laravel5.4がリリースされテスト周りの書き方が大きく変更されています。 この記事の内容だとLaravel5.4では動作させる事が出来ません。 時間が出来次第、この記事にLaravel5.4でも動作するように編集します。 (参考) https://laravel.com/docs/5.4/testing http://qiita.com/komatzz/items/1679373c86c252c5f49f この記事で伝えたい事 テストコードを書く事により得られるメリット テストコードを書く時上で必要な考え方 REST APIでの具体的なテストコードの書き方 仕事でLaravel 5.3を触る機会があったので今回のサンプルではLaravel 5.3を利用します。 とはいえテストコードの基本的な考え方は他の言語やフレームワークでもほぼ同じですので、他の言語でも
最近は Laravel + AngularJS で Web アプリケーションを開発する毎日です。 少し時間が取れたので Laravel フレームワークのソースを読んでいます。その中から Laravel の肝でもある IoC コンテナの使い方をまとめてみました。 Laravel の IoC コンテナ Laravel で使われている IoC コンテナは、Illiminate\Foundation\Applicationクラスです。これはIlliminate\Container\Containerクラスを継承したもので、コンテナとしての基本機能はIlliminate\Container\Containerクラスが担っています。 Laravel アプリケーションで、この IoC コンテナを利用する際は、AppクラスというIlliminate\Foundation\Applicationのファサード
Before digging into Laravel Horizon, you should familiarize yourself with Laravel's base queue services. Horizon augments Laravel's queue with additional features that may be confusing if you are not already familiar with the basic queue features offered by Laravel. Laravel Horizon provides a beautiful dashboard and code-driven configuration for your Laravel powered Redis queues. Horizon allows yo
I recently had the need to write a small url shortening application. I am aware that this problem has been solved quite a few times before, but what is being a developer if not reinventing the wheel just for the heck of it? Custom CMS anyone? Knowing that this was going to be a tiny RESTful API and also knowing that Laravel 5.2 had API rate limiting built in, I was eager to give it a try. Taylor O
Laravel5のQueuesはメッセージキューを抽象化したフロントエンドで、バックエンドにRedis, Amazon SQS, IronMQなどが使える。 簡単な非同期ジョブをする分には便利そう。 使うときにはキューにpushするアプリ側と、非同期で処理するワーカー側を構成することになるが、ワーカーを走らせるときに大きく2種類あるようなことがドキュメントに書いてある。 http://laravel.com/docs/5.0/queues#running-the-queue-listener 基本がqueue:listenの方で Laravel includes an Artisan task that will run new jobs as they are pushed onto the queue. You may run this task using the queue:lis
実装に関するチュートリ的なコードはこちらにまとまっている。 一口にMultiAuthといっても、単純ではない 認証に関するモデル周りのストレージ機構 コントローラ ミドルウェア この辺りをうまいこと綺麗に分離してやる必要がある。 通常のauthを利用する場合、make:authでスケルトンを作成する事になるが、 MultiAuth使用時にコレを援用するのは難しそう。 (管理画面に一般公開のregisterは不要だったりとか…) ストレージ機構の用意 ストレージ周りのauth処理をコントロールする際には、config/auth.phpに設定を追加する。 <?php return [ 'guards' => [ // 追加 'admin' => [ 'driver' => 'session', 'provider' => 'admin', ], ], 'providers' => [ // 追
laravelを使っていれば自然と使うことになるFacade. FacadeとはもともとデザインパターンのFacadeパターンが有名ですけど、「シンプルな使い方を提供する」って感じの意味で名付けてるんでしょうね。 APIみたいなイメージでしょうか。 そんなFacadeですがもちろん作れます。作ってみましょう。 テストなので文字列を出力する単純な機能だけです。 TestEchoHelper クラスという名前にします。Heplerっていう名前は特別必要ないです。TestEchoDesuyo クラスとかでも大丈夫です。 手順が少し複雑なので、先に説明しましょう。 実装したい機能を持つクラスを作る(TestEchoHelper クラス) TestEchoHelperクラスのインスタンス化方法を決める サービスプロバイダの機能を使って、手順2で指定した「インスタンス化の方法」をサービスコンテナの機能
01_Laravel 5 Simple ACL manager_Readme.md Laravel 5 Simple ACL manager Protect your routes with user roles. Simply add a 'role_id' to the User model, install the roles table and seed if you need some example roles to get going. If the user has a 'Root' role, then they can perform any actions. Installation Simply copy the files across into the appropriate directories, and register the middleware in
今回は、モデルで1対nのリレーションを扱いたいと思います。ユーザーが複数の記事を持つ様に、User モデルと Article モデルを関連付けます。 Model UserモデルとArticleモデルを1対nで関連付けます。 User // app/User.php class User extends Authenticatable { ... public function articles() { return $this->hasMany('App\Article'); } } articles() メソッドを作成し、hasMany() メソッドで Article と関連付けます。 これで以下のように User に関連付く Article をn件取得できるようになります。 $articles = User::find(1)->articles(); Article // app/Ar
今回は記事の削除機能を追加します。この作業を通してヘルパー関数の作成も行います。 Routing // routes/web.php Route::get('articles', 'ArticlesController@index'); Route::get('articles/create', 'ArticlesController@create'); Route::get('articles/{id}', 'ArticlesController@show'); Route::post('articles', 'ArticlesController@store'); Route::get('articles/{id}/edit', 'ArticlesController@edit'); Route::patch('articles/{id}', 'ArticlesController@u
2014/10/13 (更新日: 2016/08/14) Laravelで画像処理(アップロード/リサイズ/サムネイル)を行なう方法 Laravel PROGRAMMING LaravelでLaravelで画像処理(アップロード/リサイズ/サムネイル)を行なう方法をまとめました。 Laravel学習をしている方の参考になれば幸いです。 ソースはgithubで公開しています。 manabubannai/Laravel_Image_Manipulation Laravelで画像処理をするパッケージのインストール intervention/image というパッケージを利用します。 intervention/image – Packagist 以下のコマンドでインストールします。 $ composer require intervention/image つづいて、intervention/im
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く