2021/10/02, 03に開催されてPHP Conference Japan 2021の登壇でお話ししたスライドです。 #phpcon2021 #phpcon #php
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アプリを作るときにだいたい共通してやっていることを一つひとつ丁寧に解説していきます。 時間と紙幅の都合で書ききれなかったテクニックやTipsもたくさんありますが、Symfony初級者〜中級者の方には参考にしていただけると思います💪 デモアプリのコードは以下のリポジトリで公開しています。 https://github.com/ttskch/symfony-example-app/tree/tagged また、実際に動作するデモ環境もあるので、ぜひ触ってみてください。(Herokuの無料プランなので初回アクセス重いです🙏) https://symfony-example-app-tagged.herokuapp.com/ja/
Symfony Advent Calendar 2019 3日目の記事です。 昨日は @polidog さんの 「JsonSchemaBundleを作った話」 でした。 Docker が開発環境のお供として定着したおかげでチーム内の環境差はだいぶ小さくなりました。 しかし、Docker for Mac は APFS との相性が悪く、特に Symfony プロジェクトでの DX の悪さは悩みの種でした。 この問題の解決方法はいくつかありますが、個人的に NFS を使った方法が手間と効果のバランス上よいと思っています。 Docker 標準機能の consistency delegated や cached もそれなりには効きますが、開発中の DX 的にはまだ不満が残ります。 docker-sync も試してみましたが動作が安定せず解決策とはなり得ませんでした。 (他にも実は VMWare 上の
PHP Conference Japan 2021でお話しさせていただいた、『SymfonyとDoctrineで簡単クリーンアーキテクチャ』ですが、実際にやってみようと思います。 当日のセッションはこちら やってみるユースケース 『ユーザが商品を購入する』『複数いる配送係に注文内容連絡する』っていうのをやります。 モデリング 概念モデル図 ユーザは複数の注文ができます。注文にはどの商品をいくつ買ったかがわかる注文明細が紐づいています。 配送係に連絡はするものの、注文には紐づかないので独立した形にしました。 クラス図 『ユーザが商品を注文する』というユースケースを実装するクラスと、『配送係に注文内容を連絡する』というユースケースを実装するクラスを用意します。 ここで、配送係に連絡するためには配送係を取得しないといけないので、データサービスを用意し、『配送係を取得する』処理を別途用意します。
前置き:例えばこんな要件ありますよね よくある要件として、フォームに カテゴリ と サブカテゴリ という2つの入力項目があり、選択されている カテゴリ に応じて サブカテゴリ の選択肢が変化してほしい、といったものを考えてみます。 この場合、もちろんSymfony側ではカスタムバリデーションを書くなどしてカテゴリとサブカテゴリの組み合わせが正しくない場合にエラーになるように実装することになるでしょう。 しかし、それだけだとフロントエンド側では間違った選択肢を普通に選べてしまうので、ユーザーは送信してみるまで間違いに気づくことができず、とても不親切です。(というかこの要件でその実装だったら普通にクレームでしょう😅) ちなみに、カスタムバリデーションの書き方については以下の別記事などをご参照ください。 symfony/formで「どちらか片方の入力は必須、かつ両方入力はNG」をバリデーション
こちらは Symfony Advent Calendar 2021 の11日目の記事です。 昨日は @ttskch さんの [Symfony] Securityアノテーションを使って複雑な権限チェックを行う | blog.ttskch でした。 どーも @kalibora です。今回は 「エンジニアじゃなくたって現在時刻を自由自在に操ってテストがしたいよ〜〜(CV: マヂカルラブリー野田) with Symfony」 と題した記事です。 どういう話かといいますと、例えばお正月の1月1日からお正月キャンペーンのようなものをやるとして、画面が1/1の0時から切り替わるけど、それを前もってQAやPdMなどエンジニア以外の人がどうやって簡単にテストするか?みたいな話です。 前半は Symfony に関係ない一般的な話、後半はそれを Symfony でどう実装したか?という2段構えで書かせていただき
Symfony Advent Calendar 2020 24日目の記事です! カルテット開発部では基本的にWebアプリケーションはSymfonyを使って開発していますが、実は「フレームワークはどうでもいい」と考えています。 「え?どういうこと?」という反応が予想されるので、内容と理由について説明します。 「フレームワークはどうでもいい」 私達が作りたいのは我々のモデリングしたドメイン(リスティング広告運用業務のドメイン)を体現したアプリケーションです。フレームワークのイケてる機能を使ったアプリケーションではありません。 モデリングしたドメインを適切に表現してユーザーに提供できるなら、フレームワークもプラットフォームも何でも良いのです。究極的にはエクセルマクロでも良いぐらいです。 現時点では「Webアプリケーションという形式に乗せたい」という要求があるため、Webアプリケーションのプラット
Symfony Advent Calendar 2020 12日目の記事です。 Symfony CLIはSymfonyローカルマシンでの開発を支援するコマンドラインツールです。Laravel Installer(laravelコマンド)のようにSymfonyプロジェクトの作成にもできますが、それ以外にも優れた機能を備えています。その機能のうち、ぼくがよく使っている便利な機能をいくつかご紹介します。 Symfonyプロジェクトの作成 Symfonyのプロジェクトを作成するにはlavael Installerと同じ感じです。 プロジェクト名でディレクトリを作成し、ディレクトリ内にSymfonyをインストールします。以降のコマンドはプロジェクトのディレクトリに移動して、実行します。 余談ですが、Symfony CLIはコマンド実行時に、必ずアップデートを確認・ダウンロードし、常に最新のものが利用
GDPR has been in place for years now, and we’re starting to learn more and more about how it’s going to be enforced and what it really means. The many questions people had that could only be answered by court decisions have now been answered. Over the past years, I’ve seen systems try and fail to correct implement GDPR. Here are the things I’ve learnt from court decisions and from mistakes made. T
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
PHPカンファレンス2023「Symfony+Doctrine ORMで始める安全なモジュラモノリス」のスライドです。 ## トーク概要 モノリス全盛期〜マイクロサービスブームを経て、近年、両者のいいところ取りができるアーキテクチャとしてモジュラモノリスが話題になることも増えてきました。PHPでも流行のLaravelフレームワークでのやり方やハマりポイントの記事がありますが、基本的に密結合を指向しているLaravelをベースにかなり無理をして実現している事例を見かけます。 私が数年にわたってSymfony+Doctrine ORMをベースにモジュラモノリスでアプリケーションを開発してきた経験から、Laravelベースで開発するよりも数段楽にモジュラモノリスを実現できることを証明したいと思います。
こんにちは。Symfony Advent Calender 2019 の 7日目です。 (すでに8日目になってしまいましたが気にせず書いていきます。) 昨日は 【初心者向け】よく使うSymfonyコマンド集でした。自分がよく使うコマンドは debug:router かな。コマンド多くて便利なところは Symfony の特徴ですよね。 自分がSymfonyと関わりはじめてから約12年ぐらいたちました。 今日は Symfony の懐かしい思い出話をしてみたいと思います。 connect.symfony.com Symfony は symfony だった 2007年1月。symfony1がリリースされました。 2系からは大文字になりましたが、1系のころはsymfonyと小文字でしたね。そんなsymfonyを初めてしった理由はその当時の所属していた会社で使っていた共通のフレームワークはMojavi
JMSJobQueueBundleユーザーのためのMessengerコンポーネント移行ガイド(Symfony4時代のasyncジョブ実行入門) SymfonyでWebアプリケーションを作るとき、HTTPリクエストから直接実行するには重い処理があったらどうするか? 以前の記事 でも書いた通り、非同期処理を実装することが多いですね。 Symfony2時代の非同期処理のスタンダードは JMSJobQueueBundle でした。 JMSJobQueueBundleも一応Symfony4に対応してくれたのですが、不具合があって利用できない時期が長く、メンテナーの方が忙しいようでプルリクエストへの返信も遅れがちでした。乗り換え先をどれにするのが良いかTwitterで聞いてみたところ、 Symfony\Component\Messenger を使うと良いよというアドバイスをもらい、使ってみたらとても良
If you either love AWS services already, or are looking for a good option to use with your multiplatform products, AWS Cognito seems to be a good candidate to adopt into your technical stack. For me it was unknown, but once I started digging into it, I find it to solve some problems I was bored with solving. Setup Cognito on AWS For starters, we should prepare our Cognito user pool. We can do this
概要 EC-CUBEは、SymfonyやDoctrineをベースに開発されています。 そのため、SymfonyやDoctrineが提供している拡張機構を利用することができます。 ここでは、代表的な拡張機構とその実装方法を紹介します。 Symfony Event Symfonyのイベントシステムを利用することができます。 hello worldを表示するイベントリスナーを作成する app/Customize/EventListener配下ににHelloListener.phpを作成します。 <?php namespace Customize\EventListener; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\Event\FilterRes
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く