Tag symfony2を表示しています。
2017.10.19 木
Laravelは舶来品なので日本語にはデフォルトで対応していないので日本語入力に関連するバリデーションがないのです。ここではひらがな入力のみを受け付けるバリデーションのカスタマイズをしてみます。 Laravelの自前のバリデーション機能はとても良くできているのでこれを継承して使うのがベストです。いろんなやり方がありますが今回はサービスプロバイダーを作成してどこでも使えるようにしておきます。 Laravel5.5 php7.1 artisanでプロバイダー作成 artisanコマンドでプロバイダーを作成します。 php artisan make:provider ValidatorServiceProvider app/Providers/ValidatorServiceProvider.ph...
2017.5.7 日
Formから何らかの情報を取り入れてDBに格納、メール送信といったところが基本的な機能になるかと思います。Frontから攻める方法とDBから攻める方法が(私個人としては)あるのですが、コントローラーから攻める方法は他の機能とのからみができてからと思うので、ここではDBまわりから順番に作成してゆきます。 設計 マイグレーションとモデル コントローラとビュー Formの設計 入力項目に加えて、データを保存する形式を踏まえて設計します。とはいえLaravelではartisanコマンドである程度必要なものを揃えてくれます。 テーブル名は無難に「ContactUser」にしておきましょう。データの保存項目は以下のようにします。 カラム名 データ型 内容 id increments ID last_na...
2017.3.20 月
ミニマムでインストールしていたらcomposerからインストールしないといけないですが、そこは割愛。 monologはいわゆるログを取るモジュールなんですが、そもそもメモリ不足でFatal errorでコケた場合とかにログそのものが残らないという悲しいことになってしまったりという自体をそこそこ解消してくれる優れものです。シェル立ち上げて適当にログ取っちゃおうという方々もこっち使った方がいいです。 ログを取る monologを使いたいコントローラのいちばん最初で、monologをuseしてあげます。 // monolog use Monolog\Logger; use Monolog\Handler\StreamHandler; 今回ここではHandlerは使わないですがいずれ使うので一緒にu...
2017.3.14 火
$_POSTで受け取ることも勿論できるのですが、Symfony2を使っているのだったら使わない方がよいです。 リクエストのコンポーネントをよんで$requestから該当のポスト値を取得します。ポスト値はprotected(だったと思う)なので、いわゆるゲッター・セッターで取り出すという段取りになります。 namespace fooBundle\Controller; use Symfony\Component\HttpFoundation\Request; class barController extends Controller { public function indexAction(Request $request) { $foobar = $request->get('fo...
2017.3.10 金
結局xamppとかApacheとか入れないとPHPは使えないので作業が楽な方のxamppで。コマンド使うときは直接PHPを起動するといいみたい。 $ /c/xampp/php/php.exe -v PHP 5.6.19 (cli) (built: Mar 2 2016 20:08:35) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies 普通に動いた。 $ /c/xampp/php/php.exe bin/console list Symfony2のコマンドも普通に動いた。
2017.3.9 木
Options: -h, –help Display this help message -q, –quiet Do not output any message -V, –version Display this application version –ansi Force ANSI output –no-ansi Disable ANSI output -n, –no-interaction Do not ask any interactive question -e, –env=ENV The environment name [default: “dev”] –n...
2017.2.1 水
というタイトルですがmod_rewriteの設定が云々という話になるのでたいした話ではありません。 Symfony2はapp.phpにすべてのアクセスを集約するので、それをindex.phpに変えてあげるのが一番簡単だなぁという感じです。 app/web/.htaccess 62行目あたり RewriteRule ^ %{ENV:BASE}/index.php [L] 70行目あたり RedirectMatch 302 ^/$ /index.php/ 続いてapp.phpそのものをindex.phpにリネームすれば完了です。あとは、app/web/wordpress/というように適当にインストールすれば、/wordpress/でWordpress自体にアクセスできます。 Symfony2とW...
2017.1.30 月
ComposerのOptimized Autoloaderを利用する クラスのマッピングをしてくれるというやつです。本番環境では必ずやる。開発環境では遅かったらやるぐらいで大丈夫そうです。しかしこれやると本当に速くなります。 $ php composer.phar dump-autoload -o Generating optimized autoload files これをやって、 $ php composer.phar update -o これをやる。 エラーが出たらcomposerを最新にするといいっぽい。(*1) 更新ファイルは以下になるようです。 composer.phar vendor/composer/ClassLoader.php vendor/composer/LICENS...
2017.1.22 日
Symfony2にはFormを作るにはとても便利な機能がたくさんあるのですが、便利ゆえに微妙なカスタマイズができなかったり痒いところに手が届かなかったり(届く知識と技術がなかったり)でなかなか歯がゆいものがあるので、ここではベタに書いてゆく方法を紹介します。 ここでは、 – ID – ホームページタイトル – URL – 連絡先のEmail – 作成日 – 更新日 – 削除フラグ という項目で作ります。 バンドルを作成 もしバンドルがなかったらバンドルを作成します。 $ php bin/console generate:bundle --namespace=Leaning\TemplateBundle --f...
2017.1.19 木
情報源 他人が作成した組み方がわからない(いや自分が組んだものさえわからない) $ bin/console router:match / スラッシュにマッチしたURIに紐づくコントローラやルーティングファイルなどの一連の関連ファイルのリストを作ってくれます。これないと死にます。 キャッシュ 開発中はごく頻繁にキャッシュを削除しないと確認作業ができません。削除はそれでいいのですが、今度は最初のアクセスもかなり時間がかかるのでいわゆるcold cache/warm cacheという感じで削除後はコマンドでwarmupした方がいい。–no-warmupをつけてもつけなくてもあんまり変わらないときがあるので、どっちにしろwarmupした方がいい。 $ php bin/console ca...
2017.1.18 水
バンドルの作成 いろいろ難しいSymfony2ですがチュートリアルはここにあります。 むかしはapp/consoleだと思っていたんですが、bin/consoleになったような気がする。 $ php bin/console generate:bundle --namespace=Leaning\TemplateBundle --format=yml 例によってダイアログでいろいろ聞かれますが、全部エンターのみ押していけばOK。 Welcome to the Symfony bundle generator! Are you planning on sharing this bundle across multiple applications? [no]: Your application ...
2017.1.18 水
composerの入手 $ curl -s http://getcomposer.org/installer | php composerからsymfony2をインストール $ php composer* create-project symfony/framework-standard-edition [インストールするフルパス] インストールするパスに絶対パスを指定したらうまくいかなかったので、カレントディレクトリにとりえず落として、各プロジェクトの場所に移動させました。またディレクトリは空のものを用意しておかないと駄目みたいですね。 そもそもcurlが使えない場合、うまくcomposerが作動しない場合は、普通にダウンロードしてサーバーにあげます。 9.4MBあったのでそこそこの大きさ...