Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
ビジネスロジック書くところ無い cakephpでは、Helper,Component,ShellHelper,Cellなどもろもろロジックを使いまわすための機構がありますが、バッチなどを動かすShellと、ウェブ上で動かすcontroller等のソースで、ロジックを共有したいのに既存のものだとロジックを置く場所がないです。 参考 みんな困ってます。 cakephp - How to load a component in console/shell - Stack Overflow どうやってコンポーネントをshellでつかうの? cakephp 3.0 - Calling a Component function from helper - Stack Overflow どうやってコンポーネントをHelperの中でつかうの? ということで、Serviceクラスを作ってみました 正直DDD
はじめに (注) 本記事は単なる目次です。 半年前くらいから Laravel を使い始めて、個人的にベストプラクティスをまとめたいと思っていたので、目次の内容で順次エントリーを上げていきたいと思います (順不同になりそうだし、項目は増減するかも)。 方針 できるだけフレームワークの作法に合わせる できるだけ変更容易性が高くなるようにする できるだけトリッキーにならないようにする といったところです。 環境 各エントリーにも記載しますが、基本的には PHP 5.6 Laravel 5.3 で動作確認ができたコードを載せるつもりです。 バージョンによって書き方に違いがある場合は極力補足するつもりです ( 5 系のみ)。 目次 ルーティング コントローラー リクエスト&バリデーション ビュー テンプレート イベント&ジョブ&通知&キュー Eloquent ORM コマンド サービス テスト 番外
はじめに このエントリーについて この記事は「Laravelでウェブアプリケーションをつくるときのベストプラクティスを探る」シリーズの番外編です。 他の記事は目次からアクセスしてください。 先日こちらの記事を読んで、そう言えば Request と Model のインピーダンスミスマッチをどうやって解消するのがベストプラクティスかなぁと思ったので、考えてみました。 Laravelで電話番号のバリデーションエラーメッセージの重複を避ける - Qiita 環境 PHP 5.6 Laravel 5.3 詳細 メインはあくまでもインピーダンスミスマッチの話なんですが、ついでに、長らく以下のようなデータの取り出し方が気持ち悪くてなんとかならないかなぁ、と思っていたので、それに対する対処でもあります。 何が気持ち悪いかっていうと、_token っていう、フレームワークの内側で使っている CSRF プロテ
お疲れ様です! GMOリサーチの石黒です。 私は普段からCakePHP3の公式ドキュメントを翻訳しています。 今回は、既に翻訳された公式ドキュメントの誤訳やタイポを簡単に修正する方法をご紹介します。 必要なもの Githubアカウント ブラウザ 以上 ①誤訳を発見する Chronosのドキュメントを眺めていたら「インストールためには」という文を発見したので、今回はこれを「インストールするためには」に修正します。 ※今回は明らかに誤訳というかタイポですが、誤訳であるかどうかは、英語の原文と見比べて判断しましょう。 ②修正画面に飛ぶ 画面右の鉛筆マークをクリックすると、Githubで管理されているcakephp/docsというリポジトリの対象ファイルの修正画面に飛びます。 ③修正する この画面内で修正できます。 ※画面上部にメッセージが出ているように、このリポジトリを直接修正することはできませ
ディップ Advent Calendar の最終日の記事です。 本記事では、Laravel5 にデフォルトで設定されている Middleware について書きます。 どんな機能がデフォルトで動くようになっているかを知ることで、Laravel アプリケーションをより効率的で高速に動かすことができるかもしれないという話です。 Middleware - Laravel - The PHP Framework For Web Artisans(Laravel 公式サイト) ミドルウェア 5.3 Laravel(日本語訳) Laravel に含まれるミドルウェア Laravel5.3 においては、下記の Middleware がデフォルトで設定されています。 ... protected $middleware = [ \Illuminate\Foundation\Http\Middleware\Ch
この投稿はSymfony Advent Calendar 2016 25日目の記事です。 今年から日本Symfonyユーザー会に参加しました。花井です。 2016年に開催したSymfony Meetupを振り返ります。 Symfony Meetupとは? Symfony Meetup は Symfony を通じた交流会です。 コミュニケーションや情報交換の場としてご利用いただいております。 「Symfony を通じた」交流会ですから、Symfonyに限らずPHPやJSのフレームワーク、OOPなど、毎回幅広い話題についてLTや議論が繰り広げられます。 2016年Meetup開催カレンダー 今年は11回開催することができました。参加いただいた皆様、ありがとうございました。 また、会場をご提供いただいている企業の皆様、いつもありがとうございます。 |開催日|タイトル|開催場所(敬称略)|テーマ|
About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after the opening date of the year can be registered. (Secret articles can be registered anytime articles are posted.)
こんにちは! 片手間JSerの者です! レガシーPHPの方から来ました! みんなPHPで動的な管理画面とか作りたいじゃないですか。私などは怠惰ななまけものですので、動的なページ、特にブラウザ側での動きがあるページを作るのはだるいなあ、とか思ってしまふわけですよ。 きちんと設計したアプリケーションも良いものなのですが、水は低きに流れると申しまして、Vue.jsは雑に動くコードを異常に簡単に書くこともできます。 PHPだけで片手間 スゴイ雑に、こんなページを作ってみます。これは、何かの商品の一覧と説明文を登録する画面ってことにします。 このコードの思想としては、一個づつ追加して保存すると最後に空欄ができるのでJavaScriptがなくてもコンテンツを追加するアプリケーションが実現できる!!! って感じです。 ソースコード: https://github.com/zonuexe/katatema
Aspect Weaving with DDD 今年はLaravel界隈でもDDDの話題が目立つ様になりました。 データベースなどのストレージへのアクセスを抽象化させる目的で、 リポジトリパターンを利用するケースが増えてきたのではないかと思います。 ビジネス領域に焦点を合わせて設計を行うため、 当然ながら、みなさんがそれぞれ開発するアプリケーションでは どれがEntityとなるのか、ValueObjectはどれになるかは大きく異なり、 アプリケーションごとにDomain Serviceは大きく変わるのをよく目にすると思います。 そんなモデリングの世界において、 データベースのトランザクションや、ロギング、キャッシュといったビジネス領域に当てはまらないケースが多いものはどの様に分離するべきでしょうか? feature 開発に入る前に仕様や、ストーリーなどを記述することが多いと思います Sto
<?php namespace App\Socialite; use Laravel\Socialite\Two\AbstractProvider; use Laravel\Socialite\Two\ProviderInterface; use Laravel\Socialite\Two\User; class LineProvider extends AbstractProvider implements ProviderInterface { protected function getAuthUrl($state) { return $this->buildAuthUrlFromBase('https://access.line.me/dialog/oauth/weblogin', $state); } protected function getTokenUrl() { retu
Schooアドベントカレンダーの20日目の記事です。 はじめに わたしについて こんにちは、Schooの@ohidaです。2016年9月にSchooにジョインし、イノベーション推進室及びプロダクト戦略室という部署で、新規事業を推進したりSchooをよりイケてるサービスにするお仕事をしています。会社ではてへぺろちゃんと呼ばれています。 私は開発チーム所属のバリバリのエンジニアではないのでSchooのエンジニアリングの凄みについてはあまり語れません。ので、今回はこれから社内での導入を企んでいるお気に入りフレームワークのLaravelのことについて書きたいと思います。 なんの話をするか LaravelというPHPのフレームワークを使って簡単なウェブアプリケーションをひとつつくってみようと思います。Laravelの基本的な機能の一部+αでつくる予定です。ウェブアプリをつくるのってこんな感じで楽しい
Laravelはじめたての頃、誰もが遭遇する嫌なメッセージの代表格 「TokenMismatchException in VerifyCsrfToken」 これが発生した時に、TOPページに飛ばすとかそういうことをします。 必要になった経緯 WEB画面上でのメール送信プログラムをつくっていたとして、 送信完了ページで画面をリロードすると、メールが二重で送信される。 だからメール送信後、 $request -> session() -> flush(); みたいなことをすると 二重送信は防げるが、トークン情報が消失するため、TokenMismatchException が出てくる。 なので、トークン情報がない時(送信完了画面でリロード、または送信完了画面に直接アクセス)はTOPページにリダイレクトさせる 実装 <?php namespace App\Exceptions; use Excep
利用手順 CakePHP3新機能 View Cell の利用手順 Cellの使いどころについて メリット CellはTemplateから呼び出せる都合上、 Controllerのアクションへ記述を追加することなく画面にデータと結びついた表示を追加できます。 これは既に複雑化しているControllerをに対する変更のリスクを避ける、非常に有効な方法です。 利用範囲はReadに留める しかしアクションのコードを汚さなくて済むというメリットの一方で、デメリットも勿論存在します。 それは__責任範囲をCRUDのうちReadのみに留めておかないと、Controllerがより一掃汚れてしまう__という点です。 Cellでフォームを追加した場合、Cellの存在を知らなくて良いはずのControllerのアクションがその保存を担います。 ReadとCreate/Updateでアクションを分けていたとして
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く