Contenu connexe Similaire à Easy authcache 2 кеширование для pro родионов игорь (20) Easy authcache 2 кеширование для pro родионов игорь1. Easy authcache 2 -
кеширование для Pro
Игорь Родионов
Drupal expert
rodionov.ig@gmail.com
2. Спонсоры
Организатор Генеральный спонсор
Серебряный спонсор Серебряный спонсор
Бронзовый спонсор Бронзовый спонсор
12. Система разделения контента
/**
* Implements hook_easy_authcache_register()
*/
function easy_authcache_block_easy_authcache_register() {
$items[] = array(
'theme' => 'block',
'mock callback' => 'easy_authcache_block_dynamic_args',
'callback' => 'easy_authcache_block_callback'
);
return $items;
}
13. Система разделения контента
function easy_authcache_block_dynamic_args(&$vars) {
$module = $vars['block']->module;
$delta = $vars['block']->module;
$conf = _easy_authcache_block_settings($module, $delta);
if ($conf['is_dynamic']) {
$block_id = _easy_authcache_block_id($module, $delta);
$params = array('region' => $vars['block']->region, 'block_id' =>
$block_id);
return array('id' => $block_id, 'params' => $params);
}
return null;
}
14. Система разделения контента
/**
* Implements hook_easy_authcache_register()
*/
function easy_authcache_block_easy_authcache_register() {
$items[] = array(
'theme' => 'block',
'mock callback' => 'easy_authcache_block_dynamic_args',
'callback' => 'easy_authcache_block_callback'
);
return $items;
}
15. Система разделения контента
function easy_authcache_block_callback($data) {
if (empty($data)) {
return '';
}
$block_id = $data['block_id'];
......... COPY PASTE FROM DRUPAL CORE BLOCK MODULE..........
// Process each block
$block->region = $data['region'];
......... COPY PASTE FROM DRUPAL CORE BLOCK MODULE..........
$output = theme('block', $block);
return $output;
}
16. Система разделения контента
/**
* Implements hook_easy_authcache_register()
*/
function easy_authcache_block_easy_authcache_register() {
$items[] = array(
'theme' => 'block',
'mock callback' => 'easy_authcache_block_dynamic_args',
'callback' => 'easy_authcache_block_callback'
);
return $items;
}
17. Система доставки контента
• ESI – Edge side includes
– CDN (Akamai)
– Caching proxy (Varnish,Squid,Mongrel)
• SSI – Server side includes
– Web server (Apache, nginx, lighttpd, IIS)
• Ajax – Client side include
– Web browsers with JavaScript support
26. Deploy
Code Run
SVN Bash Manual
GIT Bash SSH
CVS VCS Hooks Cron
Mercurial Capistrano
FTP Phingistrano
SFTP
30. Инспекция - Mess
PHPMD
phpmd.org
______________________________
Code Size Rules
Design Rules
Naming Rules
Unused Code Rules
31. Инспекция – Code Style
Code Sniffer
pear install PHP_CodeSniffer
Drupal Code
Sniffer
drupal.org/project/drupalcs
33. Тестирование
Selenium + Unit testing framework
+ Functional тестирование
- Unit тестирование
+ Поддержка Java Script
- Доступ к API Drupal
- Атомарность тестов
- Хрупкость тестов
- Запуск тестов паралельно
- Производительность тестов
38. Сборка
• Contribute
• Custom
• Forked
39. Сборка
• Contribute
• Custom
• Forked Patches
40. Сборка
Drush make
projects[admin_menu][version] = "3.0-rc1"
projects[admin_menu][subdir] = "contrib/dev"
projects[admin_menu][patch][] =
"patches/admin_menu_font.patch"
42. Сборка
• Drush make
• Корпоративные
репозитории
модулей
• Хакайте ядро и
модули
• Возвращайте патчи в
сообщество
44. Сборка
Модули Drush migrate
Features
Cущности Ctools
default hooks
Strongarm
Настройки Ctools
Features
Uuid
Контент Uuid features
Features
45. Сборка - phing
• $ phing make
• $ phing install
• $ phing update
• $ phing test
• $ phing inspect
• $ phing create
• $ phing phpcs
etc ...
46. Итого
• Контроль над проектом
• Уменьшили время релиза
• Уменьшили риски
• Накопление “технического опыта”
• Гибкость интеграции стороннего кода
• 75% разработчиков счастливы
49. Спонсоры
Организатор Генеральный спонсор
Серебряный спонсор Серебряный спонсор
Бронзовый спонсор Бронзовый спонсор