Symfony

今更ながら "Index column size too large. The maximum column size is 767 bytes." に遭遇した

Symfony、というかDoctrineでmigrateしたら、うっかり以下のようなエラーに遭遇。 Index column size too large. The maximum column size is 767 bytes. utf8mb4だと、varchar(255)とかインデックス張ると767バイト超えてしまって失敗してしまうっていうや…

【Symfony】バリデーション制約 UniqueEntity の基本的な使い方とエラーメッセージについて

symfony.com UniqueEntity の fields オプションを使うと指定したフィールドにユニーク制約をつけることができる。 App\Entity\Author: constraints: - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: fields: email fields オプションは省略…

【Symfony】DoctrineのQueryBuilderでWHERE句のAND・OR組み合わせ

select('p') ->from('AppBundle:Product', 'p') ->join('p.category', 'c') ->where('c.name like :categoryName') ->andW…

SymfonyアプリケーションからElasticMQに接続する

前回の続き。 www.tomcky.net 設定を書き換える app/config/config.yml の設定はダミーで良いので書き換えておく。 aws: version: 'latest' region: 'region-dummy' credentials: key: 'key-dummy' secret: 'secret-dummy' QueueUrlを書き換える 前回 aws-cl…

SymfonyでAmazon SQSを使う(新規プロジェクト作成からメッセージ送信まで)

Symfony 3.3系プロジェクトを作成 $ composer create-project symfony/framework-standard-edition my_project "3.3.*" AWS SDKインストール $ cd my_project/ $ composer req aws/aws-sdk-php aws/aws-sdk-php-symfony app/AppKernel.php に追記

【Symfony】Requestオブジェクトからリクエストパラメータを取得する

Requestオブジェクトに触れる機会は多く、様々な情報を取得することができる。 ここではリクエストパラメータに関する扱いをまとめる。 (導入)Requestオブジェクトを扱う Symfonyのコントローラではアクションの引数とすることで、簡単に Request オブジェ…

【Symfony】動的にバリデーションを追加する方法

addEventListener を使うことで動的にバリデーションを追加することができる。 createFormBuilder や createForm にエンティティを渡していない、もしくはエンティティにないプロパティに対してバリデーションをかけたい場合や、特定の条件を満たす場合にの…

【Symfony】ParamConverterのFetch Automaticallyについて

symfony.com ルーティングで指定したワイルドカードがエンティティのプロパティと一致したときに、自動的にエンティティのインスタンスを取得できる。

SymfonyでSendGridを使ってメールを送信する

書くまでもないくらい、ドキュメントどおりにやればめちゃ簡単にできる。 symfony.com まずはインストール。 $ composer require mailer .env の設定を以下のように変更。 MAILER_URL=smtp://smtp.sendgrid.net:587?encryption=tls&username=&password= SMTP…

【Symfony】Formでsubmitされたあとの値を拾って書き換える

symfony.com Formイベントをハンドリングして値を書き換えることができる。 イベントは何種類かあるのだけど、FormEvents::PRE_SUBMIT か FormEvents::SUBMIT かで値を書き換えようとして、FormEvents::SUBMIT は値書き換えできないんだった、的なことに気づ…

Symfony4でdumpするとエラーになってしまう問題が解決した

tomcky.hatenadiary.jp この件が解決した。 SF4 : When set Session config in yaml , the dump() will be break the framework ! · Issue #25853 · symfony/symfony · GitHub debug-bundleが入ってないよ、ってことだったみたい。 symfony/debug-bundle - P…

Symfonyの雑なメモ:2018-01-26

Databases and the Doctrine ORM symfony.com Qiitaに書いた雑なまとめ記事。 qiita.com # .env # customize this line! DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name" 上記設定したあとに接続できているか確認するときは doctrine:qu…

Symfonyの雑なメモ:2018-01-23

Service Container サービスを作ると、それは自動的にプライベートとなる。 サービスは基本的にプライベートであるべきであり $container->get() を使ってサービスを取得しないほうが良い。 ただし、必要があるならば、設定を変えることでサービスをパブリッ…

コントローラとかでvar_dumpするとエラーになってしまう問題(Symfony4)

踏んだ。https://t.co/bTyzjfnmvG— tomcky (@tomcky_san) 2018年1月20日 # config/packages/framework.yaml session: handler_id: ~ sessionの設定が有効になっている状態で var_dump() やVarDumper Componentの dump() を使うとエラーが発生するみたい。 Fa…

セットアップしたばかりのSymfony4をHerokuにデプロイしてみる

2018/02/15追記) HerokuっていまPHP7.1ではないのね。。。 Symfony4は最低要件7.1なのでHerokuでは動かない部分が出てくるかも。。 devcenter.heroku.com すべてドキュメント通り、というわけにはいかないため、所々変えていかなければいけない。 Heroku CL…

Symfony4のウェルカムページはどうやって表示されているのか

Symfony4プロジェクトを作成するときはSymfony Skeletonを使用することが推奨されている。 symfony.com Symfony Skeletonは最小限、かつ空のSymfonyプロジェクトを生成するのだが、あまりに空っぽ過ぎてControllerすら1つも作成されない。 php bin/console d…

MacのPHPをHomebrewで7.1に変更する

Symfony4を利用するにはPHP7.1.3以上でなければならない。 https://symfony.com/doc/current/reference/requirements.html 試してみたところ、PHPのバージョンが要件に満たない場合は composer create-project するとSymfony3.4のプロジェクトが作成されるぽ…

Symfony4でVue.jsを使う

symfony.com 必要なものをインストールして、 $ yarn add --dev vue vue-loader vue-template-compiler webpack.config.js の修正。 Encore // ... .enableVueLoader() ; これだけで使えるようになる。 Hello world的なところまでやってみる。 エントリーポ…

Symfony4でBabelとPostCSSを使えるようにする

前に書いた記事の続き。 BabelとPostCSSを使えるようにする。 Configuring Babel (Symfony Docs) PostCSS and autoprefixing (postcss-loader) (Symfony Docs) と思ったんだけど、Encore入れるとすでにBabelが有効になってて、ES2015以降のシンタックスで記…

Symfony4のフロントエンド環境構築

ここを起点にしてドキュメントを追っかければ、ほぼほぼ大丈夫だと思う。 Managing CSS and JavaScript まずは、Encoreをインストールする。 Encore Installation (Symfony Docs) 単純にJS・CSSを使うなら public/ に置いて読み込めばいいのだけど、Symfony…