Symfony

GraphQLBundleを使って初めてのGraphQLサーバーを実装してみる

Symfony Advent Calendar 2018 16日目の記事です。 GraphQLはFacebookが開発しているAPIへの問い合わせで使われるクエリ言語です。 ここでは GraphQLBundle を利用して簡単なGraphQLサーバーを実装する方法について書きます。 そもそもGraphQLって何?という…

今更ながら "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…