Symfony
Symfony Advent Calendar 2018 16日目の記事です。 GraphQLはFacebookが開発しているAPIへの問い合わせで使われるクエリ言語です。 ここでは GraphQLBundle を利用して簡単なGraphQLサーバーを実装する方法について書きます。 そもそもGraphQLって何?という…
Symfony、というかDoctrineでmigrateしたら、うっかり以下のようなエラーに遭遇。 Index column size too large. The maximum column size is 767 bytes. utf8mb4だと、varchar(255)とかインデックス張ると767バイト超えてしまって失敗してしまうっていうや…
symfony.com UniqueEntity の fields オプションを使うと指定したフィールドにユニーク制約をつけることができる。 App\Entity\Author: constraints: - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: fields: email fields オプションは省略…
select('p') ->from('AppBundle:Product', 'p') ->join('p.category', 'c') ->where('c.name like :categoryName') ->andW…
前回の続き。 www.tomcky.net 設定を書き換える app/config/config.yml の設定はダミーで良いので書き換えておく。 aws: version: 'latest' region: 'region-dummy' credentials: key: 'key-dummy' secret: 'secret-dummy' QueueUrlを書き換える 前回 aws-cl…
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 に追記
Requestオブジェクトに触れる機会は多く、様々な情報を取得することができる。 ここではリクエストパラメータに関する扱いをまとめる。 (導入)Requestオブジェクトを扱う Symfonyのコントローラではアクションの引数とすることで、簡単に Request オブジェ…
addEventListener を使うことで動的にバリデーションを追加することができる。 createFormBuilder や createForm にエンティティを渡していない、もしくはエンティティにないプロパティに対してバリデーションをかけたい場合や、特定の条件を満たす場合にの…
symfony.com ルーティングで指定したワイルドカードがエンティティのプロパティと一致したときに、自動的にエンティティのインスタンスを取得できる。
書くまでもないくらい、ドキュメントどおりにやればめちゃ簡単にできる。 symfony.com まずはインストール。 $ composer require mailer .env の設定を以下のように変更。 MAILER_URL=smtp://smtp.sendgrid.net:587?encryption=tls&username=&password= SMTP…
symfony.com Formイベントをハンドリングして値を書き換えることができる。 イベントは何種類かあるのだけど、FormEvents::PRE_SUBMIT か FormEvents::SUBMIT かで値を書き換えようとして、FormEvents::SUBMIT は値書き換えできないんだった、的なことに気づ…
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…
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…
Service Container サービスを作ると、それは自動的にプライベートとなる。 サービスは基本的にプライベートであるべきであり $container->get() を使ってサービスを取得しないほうが良い。 ただし、必要があるならば、設定を変えることでサービスをパブリッ…
踏んだ。https://t.co/bTyzjfnmvG— tomcky (@tomcky_san) 2018年1月20日 # config/packages/framework.yaml session: handler_id: ~ sessionの設定が有効になっている状態で var_dump() やVarDumper Componentの dump() を使うとエラーが発生するみたい。 Fa…
2018/02/15追記) HerokuっていまPHP7.1ではないのね。。。 Symfony4は最低要件7.1なのでHerokuでは動かない部分が出てくるかも。。 devcenter.heroku.com すべてドキュメント通り、というわけにはいかないため、所々変えていかなければいけない。 Heroku CL…
Symfony4プロジェクトを作成するときはSymfony Skeletonを使用することが推奨されている。 symfony.com Symfony Skeletonは最小限、かつ空のSymfonyプロジェクトを生成するのだが、あまりに空っぽ過ぎてControllerすら1つも作成されない。 php bin/console d…
Symfony4を利用するにはPHP7.1.3以上でなければならない。 https://symfony.com/doc/current/reference/requirements.html 試してみたところ、PHPのバージョンが要件に満たない場合は composer create-project するとSymfony3.4のプロジェクトが作成されるぽ…
symfony.com 必要なものをインストールして、 $ yarn add --dev vue vue-loader vue-template-compiler webpack.config.js の修正。 Encore // ... .enableVueLoader() ; これだけで使えるようになる。 Hello world的なところまでやってみる。 エントリーポ…
前に書いた記事の続き。 BabelとPostCSSを使えるようにする。 Configuring Babel (Symfony Docs) PostCSS and autoprefixing (postcss-loader) (Symfony Docs) と思ったんだけど、Encore入れるとすでにBabelが有効になってて、ES2015以降のシンタックスで記…
ここを起点にしてドキュメントを追っかければ、ほぼほぼ大丈夫だと思う。 Managing CSS and JavaScript まずは、Encoreをインストールする。 Encore Installation (Symfony Docs) 単純にJS・CSSを使うなら public/ に置いて読み込めばいいのだけど、Symfony…