zend四十八手シリーズ zend_cache zend_paginator

30
Zend_Cache Zend_Paginator Zend四十八手シリーズ 2012/5/24

Upload: yandod

Post on 31-May-2015

5.428 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Zend四十八手シリーズ Zend_Cache Zend_Paginator

Zend_CacheZend_PaginatorZ e n d 四 十 八 手 シ リ ーズ

2 0 1 2 / 5 / 2 4

Page 2: Zend四十八手シリーズ Zend_Cache Zend_Paginator

PHPカンファレンス北海道2012 / Yusuke Ando (@yando)

Page 3: Zend四十八手シリーズ Zend_Cache Zend_Paginator

ZFP70Zend_AclZend_Amf

Zend_ApplicationZend_AuthZend_BarcodeZend_CacheZend_CaptchaZend_Cloud

Zend_CodeGeneratorZend_Config

Zend_Config_WriterZend_Console_GetoptZend_ControllerZend_CurrencyZend_DateZend_DbZend_DebugZend_Dojo

Zend_DomZend_ExceptionZend_FeedZend_FileZend_FilterZend_FormZend_GdataZend_Http

Zend_InfoCardZend_JsonZend_LayoutZend_LdapZend_LoaderZend_LocaleZend_LogZend_MailZend_MarkupZend_Measure

Zend_MemoryZend_Mime

Zend_NavigationZend_OauthZend_OpenIdZend_PaginatorZend_Pdf

Zend_ProgressBarZend_QueueZend_ReflectionZend_RegistryZend_Rest

Zend_Search_LuceneZend_SerializerZend_ServerZend_ServiceZend_SessionZend_Soap

Zend_TagZend_TestZend_Text

Zend_TimeSyncZend_Tool

Zend_Tool_FrameworkZend_Tool_ProjectZend_TranslateZend_Uri

Zend_ValidateZend_VersionZend_ViewZend_WildfireZend_XmlRpc

ZendX_Console_Process_Unix

ZendX_JQuery

Page 4: Zend四十八手シリーズ Zend_Cache Zend_Paginator

agenda

Getting Data

Zend_Cache

Zend_Paginator

Page 5: Zend四十八手シリーズ Zend_Cache Zend_Paginator

Getting Data

全件取得、全件表示

データが増えると見にくい

データが大きいとバックエンドなどに負担

Page 6: Zend四十八手シリーズ Zend_Cache Zend_Paginator
Page 7: Zend四十八手シリーズ Zend_Cache Zend_Paginator

Solution

データの取得頻度を減らす→キャッシュする

データを小分けにして扱う→ページングする

Page 8: Zend四十八手シリーズ Zend_Cache Zend_Paginator

Zend_Cache

Page 9: Zend四十八手シリーズ Zend_Cache Zend_Paginator

Zend_Cache

キャッシュ全体を管理するZend_Cache

データの読み書きなどのアクセス手段を提供するFrontend

各種キャッシュエンジンはBackend

Page 10: Zend四十八手シリーズ Zend_Cache Zend_Paginator

とりあえずの例

Page 11: Zend四十八手シリーズ Zend_Cache Zend_Paginator

Frontendの技レコードのタグ付け

キャッシュの削除

出力キャッシュ

関数、メソッドキャッシュ

ファイルのキャッシュ

Page 12: Zend四十八手シリーズ Zend_Cache Zend_Paginator

タグを複数マークして削除などに利用する

Page 13: Zend四十八手シリーズ Zend_Cache Zend_Paginator
Page 14: Zend四十八手シリーズ Zend_Cache Zend_Paginator
Page 15: Zend四十八手シリーズ Zend_Cache Zend_Paginator

簡潔に使える

Page 16: Zend四十八手シリーズ Zend_Cache Zend_Paginator

Backendの技File

Sqlite

Memcached

Apc

Xcache

ZendPlatform

TwoLevels

ZendServer_Disk

ZendServer_ShMem

Static

だいたいよくあるパターン

Page 17: Zend四十八手シリーズ Zend_Cache Zend_Paginator

これはキモい

Page 18: Zend四十八手シリーズ Zend_Cache Zend_Paginator

ZFなら

とりあえず便利に使えるので独自実装は避ける

Zend_Db_TableなどもメタデータのキャッシュにZend_Cacheを使えます

Page 19: Zend四十八手シリーズ Zend_Cache Zend_Paginator

Zend_Paginatorby horiavarlan

Page 20: Zend四十八手シリーズ Zend_Cache Zend_Paginator

Paginator

データセットを分割してページ送りリンクと連携する

多様なデータに対応するアダプタ

表示系はZend_Viewとパーシャル

Page 21: Zend四十八手シリーズ Zend_Cache Zend_Paginator

アダプタは色々

Page 22: Zend四十八手シリーズ Zend_Cache Zend_Paginator

とりあえずの例

Page 23: Zend四十八手シリーズ Zend_Cache Zend_Paginator

実行結果

Page 24: Zend四十八手シリーズ Zend_Cache Zend_Paginator

ページ送りリンク

Page 25: Zend四十八手シリーズ Zend_Cache Zend_Paginator
Page 26: Zend四十八手シリーズ Zend_Cache Zend_Paginator
Page 27: Zend四十八手シリーズ Zend_Cache Zend_Paginator

合体するしかない

特に考えてないが、常識的な処理に

Page 28: Zend四十八手シリーズ Zend_Cache Zend_Paginator

ページ分け

Adapter_Arrayに配列を渡しさえすればページングできる

Zend_Db_Selectの場合も便利かも※ビューまで引き回す必要あり

Page 29: Zend四十八手シリーズ Zend_Cache Zend_Paginator

まとめ

キャッシュもページングもよく出来ている

Zend_Viewに依存している部分

ZendのMVCに沿っていればスムーズ

そうじゃない場合は工夫

Page 30: Zend四十八手シリーズ Zend_Cache Zend_Paginator

サンプル?

https://github.com/yandod/php-form-sample