PHP Conference Japan 2021でお話しさせていただいた、『SymfonyとDoctrineで簡単クリーンアーキテクチャ』ですが、実際にやってみようと思います。 当日のセッションはこちら やってみるユースケース 『ユーザが商品を購入する』『複数いる配送係に注文内容連絡する』っていうのをやります。 モデリング 概念モデル図 ユーザは複数の注文ができます。注文にはどの商品をいくつ買ったかがわかる注文明細が紐づいています。 配送係に連絡はするものの、注文には紐づかないので独立した形にしました。 クラス図 『ユーザが商品を注文する』というユースケースを実装するクラスと、『配送係に注文内容を連絡する』というユースケースを実装するクラスを用意します。 ここで、配送係に連絡するためには配送係を取得しないといけないので、データサービスを用意し、『配送係を取得する』処理を別途用意します。
参考資料 入門って書いてあるのにだいぶ苦労したわ... https://leanpub.com/symfony5-nyumon これドル払なのに日本語だ!(衝撃) なんでservice.ymlってなんだよって思ったら 【Symfony】サービスコンテナを実装する がわかりやすいね サービスを必要とするオブジェクトに対して、外から渡すことにとって、疎統合な設計を実現します。 開発環境 PHP 7.4.6 PhpStorm(PhpStormが勝手にやってくれるインポートなどの部分は省略していることが多いので違うエディタでやってる人は注意) PHP拡張を確認 amqp Download the latest stable release from here https://pecl.php.net/package/amqp for your PHP version (TS, x64); Unpa
はじめに、あるECサイトを仮定しましょう。 このサイトでは、毎年2月はバレンタインセールを行うので、現在がその期間内か判定するロジックを実装することになりました。 以下のコードはそのままコントローラに実装した例です。 namespace App\Controller; use App\Entity\Product; use Symfony\Component\Routing\Annotation\Route; class HelloController extends AbstractController { /** * @Route("/", name="hello_index") */ public function indexAction() { $em = $this->getDoctrine()->getManager(); $products = $em->getReposit
簡単なデモアプリを作りながら、著者自身が実務でSymfonyアプリを作るときにだいたい共通してやっていることを一つひとつ丁寧に解説していきます。 時間と紙幅の都合で書ききれなかったテクニックやTipsもたくさんありますが、Symfony初級者〜中級者の方には参考にしていただけると思います💪 デモアプリのコードは以下のリポジトリで公開しています。 https://github.com/ttskch/symfony-example-app/tree/tagged また、実際に動作するデモ環境もあるので、ぜひ触ってみてください。(Herokuの無料プランなので初回アクセス重いです🙏) https://symfony-example-app-tagged.herokuapp.com/ja/
Services Platform.sh for Symfony Best platform to deploy Symfony apps SymfonyInsight Automatic quality checks for your apps Symfony Certification Prove your knowledge and boost your career SensioLabs Professional services to help you with Symfony Blackfire Profile and monitor performance of your apps
Symfony Advent Calendar 2020 12日目の記事です。 Symfony CLIはSymfonyローカルマシンでの開発を支援するコマンドラインツールです。Laravel Installer(laravelコマンド)のようにSymfonyプロジェクトの作成にもできますが、それ以外にも優れた機能を備えています。その機能のうち、ぼくがよく使っている便利な機能をいくつかご紹介します。 Symfonyプロジェクトの作成 Symfonyのプロジェクトを作成するにはlavael Installerと同じ感じです。 プロジェクト名でディレクトリを作成し、ディレクトリ内にSymfonyをインストールします。以降のコマンドはプロジェクトのディレクトリに移動して、実行します。 余談ですが、Symfony CLIはコマンド実行時に、必ずアップデートを確認・ダウンロードし、常に最新のものが利用
Symfony Advent Calendar 2020 の10日目の記事です!🎄🌙 昨日も僕の記事で、[Symfony] UniqueEntityで複合ユニークを設定した際に対象のフィールドすべてにエラーを表示する方法 でした✨ ちなみに、僕はよく TwitterにもSymfonyネタを呟いている ので、よろしければぜひ フォローしてやってください🕊🤲 やりたいこと 例えば、以下のようなコントローラとサービス定義があるとしましょう。 /** * @Route("/foo", name="foo") * @Template() */ public function foo(BarService $bar) { $result = $bar->doSomething(); return [ 'result' => $result, ]; }
Sentryとは Sentry は、Webアプリケーションのエラー監視をしてくれるWebサービスです。 めちゃくちゃ簡単に導入できて、基本的な機能なら 無料で使える ので、「エラー監視とかやりたいけどやれてないな〜」という人は今すぐすべてのプロジェクトに導入したほうがいいです! Symfonyに導入する手順 例としてSymfonyのプロジェクトにSentryを導入する手順を具体的に紹介したいと思います。 1. Sentryにアカウントを作る まず、こちら からSentryにアカウントを作ります。 2. プロジェクトを作る ログインしたら、サイドメニューの Projects を開いて、画面右上の Create Project からプロジェクト作成画面へ行きます。 プロジェクト作成画面では、対応している言語やフレームワークを選択できるので、今回はSymfonyを選択して Create Proj
// composer.json { "require": { "php": "^7.1.3", "ext-ctype": "*", "ext-iconv": "*", "composer/package-versions-deprecated": "^1.11", // 1.11.99 "doctrine/annotations": "^1.0", // v1.8.0 "doctrine/doctrine-bundle": "^1.6.10", // 1.11.2 "doctrine/doctrine-migrations-bundle": "^1.3|^2.0", // v2.0.0 "doctrine/orm": "^2.5.11", // v2.6.3 "intervention/image": "^2.4", // 2.4.2 "league/flysystem-bundle":
上記の5フレームワークの平均は3.8%でした。日本人の人口は世界の2%に満たないですので、それと比較すると多いです。しかし、世界のインターネット人口は2016年で34億9千万人らしいので、それだと人口比でそんなに多くはないですね。 詳細 CakePHP https://github.com/cakephp/cakephp/graphs/contributors chinpei215 waterada nojimage suzuki 8 commits(100位のContributorのコミット数) CodeIgniter https://github.com/bcit-ci/CodeIgniter/graphs/contributors kenjis katsew TakayukiSakai 5 commits FuelPHP https://github.com/fuel/core/gr
この記事は Symfony Advent Calendar 2016 の 14 日目の記事です。 Symfony3 がリリースされて 1 年経ちました。そろそろ 3 系へのアップグレードを考えている方も多いと思います。今回は、私がいつもやっているアップグレードの手順をまとめてみました。Symfony2.8 から 3.0 へのバージョンアップを例に紹介しますが、どのバージョンでも見るところは同じなので、いろんなバージョンに適用できる方法かと思います。 目次 Symfony Installer を使って 1 つ上のバーションをダウンロードする composer.json を比較し、差分を取り込む サードパーティ製バンドルのバージョンを上げる composer update コマンドを実行する 標準のディレクトリ構造が変わっている場合は、新しい構造に合わせる 標準ファイルを比較し、差分を取り込む
無効なURLです。 プログラム設定の反映待ちである可能性があります。 しばらく時間をおいて再度アクセスをお試しください。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く