Mais conteúdo relacionado
Semelhante a PHPカンファレンス関西2014 Yii Framework 2.0 遅れてきた5番目のフレームワーク (20)
Mais de Hisateru Tanaka (18)
PHPカンファレンス関西2014 Yii Framework 2.0 遅れてきた5番目のフレームワーク
- 6. Yii 1.1
• PHP 5.1.2 以上専用
• RHEL-5.10 と CentOS-5 のデフォルト = PHP 5.1.6
• 名前空間がなく、クラス名にCApplicationといったプレフィッ
クスがあった
• CakePHP同様、Arrayを多用する面倒があった
• 遅延静的束縛がなかったため、ActiveRecordのインスタンス
に find/save 系メソッドが存在した
- 7. Yii 2.0 beta
• PHP 5.4 以上
• ショートArrayシンタックスでスッキリ
• 名前空間の採用でクラス名がシンプルに
• 静的メソッドがオーバーライドできるようになって、
ActiveRecord::find()->… が可能に
• 1.1のイライラが全て解消されました
- 20. Easy?
• FuelPHP / Latavel よりずっと枠組みが強い
• スクラッチで書き起こす作業は少なく、新しいことを
やる場合もやり方が決まっている
• PHP on Rails 感
• ※テーブル名に複数形とか単数形とか日本人向きじゃないルールはありません
- 23. 国内の
ユーザーコミュニティ
• Qiita にて 1.1 ベースでアドベン
トカレンダー2012完走
• 本家への貢献者は案外関西に多め
• 某大手サービスや関西の新進気鋭
ベンチャーで1.1が採用されてい
るらしい
• 関西PHPユーザー会で普及のきざ
し
• そして日本ユーザー会サイト
YiiJan.org
- 25. 2.0 での ActiveRecord
• Eloquent ORM に似た ActiveRecord に変更された
• 結果セットはプレーンな ActiveRecord[ ] 型
• IDEフレンドリー
• いちどに結果を得る以外に…
• ページング等は別途DataProviderクラスを使用
• バッチ処理でメモリ消費が高い場合には ->each()
- 26. public function actionDailyBackup()
{
$today = new DateTime();
$today->setTime(0, 0);
!
/** @var Post[] $models */
$models = Post::find()->where("updated_at > :today", [
':today' => $today->getTimestamp()
])->orderBy('id')->all();
!
foreach($models as $model) {
Yii::info("Storing " . $model->title);
$this->sendToStorage($model);
}
}
- 32. class ActiveFormAsset extends AssetBundle
{
public $sourcePath = '@yii/assets';
public $js = [
'yii.activeForm.js',
];
public $depends = [
'yiiwebYiiAsset',
];
}
- 33. <?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => 255]) ?>
<!-- 以下略 -->
<script src="/assets/2e597f3c/jquery.js"></script>
<script src="/assets/26cbb072/yii.js"></script>
!
<script src="/assets/26cbb072/yii.validation.js"></script>
<script src=“/assets/26cbb072/yii.activeForm.js"></script>
!
<script src=“/assets/a8c5b3b0/js/bootstrap.js"></script>
!
<script type="text/javascript">jQuery(document).ready(function () {
jQuery('#w0').yiiActiveForm(...);
});
</script>
!
</body>
</html>
ビューで何かウィジェットを使うだけで
依存関係を追って、HTML に
必要な JS/CSS が勝手に挿入される