zend四十八手シリーズ zend_cache zend_paginator
TRANSCRIPT
Zend_CacheZend_PaginatorZ e n d 四 十 八 手 シ リ ーズ
2 0 1 2 / 5 / 2 4
PHPカンファレンス北海道2012 / Yusuke Ando (@yando)
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
agenda
Getting Data
Zend_Cache
Zend_Paginator
Getting Data
全件取得、全件表示
データが増えると見にくい
データが大きいとバックエンドなどに負担
Solution
データの取得頻度を減らす→キャッシュする
データを小分けにして扱う→ページングする
Zend_Cache
Zend_Cache
キャッシュ全体を管理するZend_Cache
データの読み書きなどのアクセス手段を提供するFrontend
各種キャッシュエンジンはBackend
とりあえずの例
Frontendの技レコードのタグ付け
キャッシュの削除
出力キャッシュ
関数、メソッドキャッシュ
ファイルのキャッシュ
タグを複数マークして削除などに利用する
簡潔に使える
Backendの技File
Sqlite
Memcached
Apc
Xcache
ZendPlatform
TwoLevels
ZendServer_Disk
ZendServer_ShMem
Static
だいたいよくあるパターン
これはキモい
ZFなら
とりあえず便利に使えるので独自実装は避ける
Zend_Db_TableなどもメタデータのキャッシュにZend_Cacheを使えます
Zend_Paginatorby horiavarlan
Paginator
データセットを分割してページ送りリンクと連携する
多様なデータに対応するアダプタ
表示系はZend_Viewとパーシャル
アダプタは色々
とりあえずの例
実行結果
ページ送りリンク
合体するしかない
特に考えてないが、常識的な処理に
ページ分け
Adapter_Arrayに配列を渡しさえすればページングできる
Zend_Db_Selectの場合も便利かも※ビューまで引き回す必要あり
まとめ
キャッシュもページングもよく出来ている
Zend_Viewに依存している部分
ZendのMVCに沿っていればスムーズ
そうじゃない場合は工夫
サンプル?
https://github.com/yandod/php-form-sample