Re: PackageのバージョンアップでBlockが増えない?

2012年11月4日 at 19:34

乗り遅れましたがpackageで複数ブロックのインストール、アップデートはできます。
ただ、同じ様な機能のブロックを大量に作ると、DBのレコードが無駄に増えたりとパフォーマンスが良くない様な気がします。

参考までに僕がやってるコードを書いておきます。


public function install(){
$pkg = parent::install();
Loader::model('job');

// Install Block
BlockType::installBlockTypeFromPackage('block_handle1', $pkg);
BlockType::installBlockTypeFromPackage('block_handle2', $pkg);
BlockType::installBlockTypeFromPackage('block_handle3', $pkg);
BlockType::installBlockTypeFromPackage('block_handle4', $pkg);
BlockType::installBlockTypeFromPackage('block_handle5', $pkg);

//Install Themes
PageTheme::add('theme_handle', $pkg);

//Install Job
Job::installByPackage("job_handle", $pkg);
}

public function upgrade(){
parent::upgrade();
$pkg = Package::getByHandle('package_handle');
//Install Block
BlockType::installBlockTypeFromPackage('block_handle4', $pkg);
BlockType::installBlockTypeFromPackage('block_handle5', $pkg);

//Install Job
Loader::model('job');
Job::installByPackage("job_handle", $pkg);
}


この例ではblock4とblock5とjobをこのバージョンで新規に追加してあります。
このバージョンからインストールする事も考えて、install()では全部のブロック等の要素のインストール処理が書いてあります。

Re: PackageのバージョンアップでBlockが増えない?

2012年11月4日 at 21:30
taoさん、こんばんは。

業務画面を作成しているため、1画面1Blockで作成しています。
似たような画面でも、Blockを分けるようにしました。

taoさんに紹介していただいた方法で、アップデート時にBlockが追加できました!
 

Re: PackageのバージョンアップでBlockが増えない?

2012年11月4日 at 22:13
業務画面を作るとしても100は多すぎだと思います。
複数の機能をまとめてひとつのブロックとしても良いでしょうし、ページ単位のMVCであるSingle Page等を使って実装した方が良いと思います。
 

Re: PackageのバージョンアップでBlockが増えない?

2012年11月5日 at 14:00
業務画面75画面に対して、1画面1Blockで開発していってました。

確かにSinglePageで作っていって、共通で使う機能だけをBlockで実装する方が
パフォーマンス面から見てもいいかもですね。

SinglePageもBlockもファイルを配置するディレクトリ名が違うだけで
ソースにほとんど手を入れずにコンバートできそうですし、
SinglePageで開発していくように検討してみます。