Skip to content

Instantly share code, notes, and snippets.

@sunvisor
sunvisor / CountOver.php
Created December 28, 2019 01:41
ページングしたときの総件数を得る関数を DQL に追加する
<?php
/** @noinspection PhpUnused */
namespace App\DQL;
use Doctrine\ORM\Query\AST\Functions\FunctionNode;
use Doctrine\ORM\Query\Lexer;
use Doctrine\ORM\Query\Parser;
use Doctrine\ORM\Query\QueryException;

Entity を array に変換

serializer サービスを使う

<?php
$s = $container->get('serializer');
$r = $s->normalize($entity);
$json = $s->serialize($entity, 'json');

json へのシリアライズも簡単

@sunvisor
sunvisor / symfony_validation.md
Created March 12, 2019 23:46
Symfony のバリデーションの使用法

Symfony のバリデーションの使用法

https://symfony.com/doc/current/validation.html

validator サービス

  • Entity に値をセットして validate メソッドを呼ぶとエラーのリストが帰る
  • エラーのリストは ConstraintViolationList オブジェクト
  • string にキャストすることができる
@sunvisor
sunvisor / gist:9106d5c960729bf234457bd73cf36519
Created March 12, 2019 23:45
Postgresqlに接続できなくなった時
# Postgresqlに接続できなくなった時
```bash
rm /usr/local/var/postgres/postmaster.pid
```
@sunvisor
sunvisor / postgres_join_update.md
Created March 12, 2019 23:44
SQL: 結合して update

結合して update

  • 外部テーブルが一つのときは from で2つめのテーブルを指定する
  • join ではなく where で結合する
UPDATE blog.table_a
SET val = B.val
FROM blog.table_b AS B
WHERE table_a.id = B.id;
  • 外部テーブルが複数の場合は、from の次に join 節を使える
@sunvisor
sunvisor / symfony_security.md
Created March 12, 2019 23:42
Symfony のセキュリティ

Symfony のセキュリティ

Security の指示に従ってインストール

create-project

website-skelton

security-bundle も最初から入っている

@sunvisor
sunvisor / ext_js_mashup.md
Created March 12, 2019 23:17
Ext JS での外部ライブラリの読み込み

Ext JS での外部ライブラリの読み込み

`Ext.mixin.Mashup’ を使う

    mixins: [
        'Ext.mixin.Mashup'
    ],
@sunvisor
sunvisor / sencha_memo.md
Created March 12, 2019 23:14
Sencha のメモ

Sencha のメモ

Sencha の Ext JS を使っていて、「あれ、どうするんだっけ?」と忘れてしまいがちなことをメモしておきます。

Grid の変更マーク (赤い小さな三角形) を表示させない

viewConfig: {
    markDirty: false
},
@sunvisor
sunvisor / test
Last active August 29, 2015 14:10
displayTpl : [
'<tpl for=".">',
'{[typeof values === "string" ? values : values["id"]]}',
" : ",
'{[typeof values === "string" ? values : values["name"]]}',
'<tpl if="xindex < xcount">, </tpl>',
'</tpl>'
],
Ext.define("MyApp.view.edit.Edit",{
extend: "Ext.form.Panel",
xtype: 'myedit',
viewModel: {
type: "edit-edit"
},
bodyPadding: 10,