Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ThinkPHP #7: Bluz - наш код как музыка
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
thinkphp_com_ua
July 25, 2013
Programming
0
2.2k
ThinkPHP #7: Bluz - наш код как музыка
thinkphp_com_ua
July 25, 2013
Tweet
Share
More Decks by thinkphp_com_ua
See All by thinkphp_com_ua
ThinkPHP #7: Оптимизация верстки для High-Density дисплеев
thinkphp_com_ua
0
2.3k
ThinkPHP #7: Адаптация веб-сайта под различные дисплеи
thinkphp_com_ua
0
2.4k
ThinkPHP #6: Usability кода
thinkphp_com_ua
0
1.5k
ThinkPHP #6: Нелёгкий труд интервьюера
thinkphp_com_ua
2
1.5k
ThinkPHP #6: Адаптивный дизайн - время пришло!
thinkphp_com_ua
0
1.5k
ThinkPHP #3: Highload не кусается
thinkphp_com_ua
1
2k
ThinkPHP #3: Оптимизация быстродействия Веб-сайта
thinkphp_com_ua
1
1.9k
ThinkPHP #3: Дизайн пользовательских интерфейсов для разработчиков
thinkphp_com_ua
1
2k
ThinkPHP #2: Безопасность веб приложений
thinkphp_com_ua
1
3.5k
Other Decks in Programming
See All in Programming
ぼくの開発環境2026
yuzneri
0
240
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
190
Raku Raku Notion 20260128
hareyakayuruyaka
0
350
Oxlintはいいぞ
yug1224
5
1.4k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
200
CSC307 Lecture 07
javiergs
PRO
1
560
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
56
Mind Mapping
helmedeiros
PRO
0
89
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Unsuck your backbone
ammeep
671
58k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
67
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
69
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
71
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
52
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
Transcript
BLUZ Наш код как музыка http://j.mp/bluzphp
Music? O RLY?
Why? • Почему не "as is"? • Почему не ZF2/Symfony2?
• Почему не Yii? • Почему не Kohana/CodeIgniter? • Почему не Silex/Slim? • Почему не Falcon?
Usability кода • Стандарты кодирования • Отсутствие избыточности • Читаемость
кода • Предсказуемость кода
Usability кода. Profit! • Изучаю проект за час • Нахожу
баги по скриншоту • Копирую и работает
PHP 5.4+ • PSR-0 • PSR-1 • PSR-2 • PSR-3
• namespaces • closures • traits • goto
sth • composer • jQuery • RequireJS (for AMD) •
Twitter Bootstrap • GitHub - https://github.com/bluzphp • Travis CI
Model V C <?php namespace Application\Users; class Table extends \Bluz\Db\Table
{ protected $table = 'users'; protected $primary = array('id'); } /** * @property integer $id * @property string $login */ class Row extends \Bluz\Db\Row {} /models/Users/Table.php /models/Users/Row.php
M V Controller <?php return /** * @privilege View-Profile *
@cache 5 minutes * @route /profile/{$id}/ * @param integer $id * @return \closure */ function ($id) use ($view) { $view->user = Users\Table::findRow($id); }; /modules/users/controllers/profile.php
M View C <h2><?=$user->login?></h2> <a href="<?=$this->url("users", "profile", ["id"=>$user->id])?>" class="ajax">view</a> <h2>admin</h2>
<a href="/profile/1" class="ajax">view</a> /modules/users/views/profile.php
Packages • RESTFul CRUD • Grid • DBQuery Builder •
Mailer ~~ PHPMailer • Translate ~~ gettext
Declarative Front End Dev <a class="ajax" href="/get">...</a> <a class="confirm" href="/delete"
data-id="42" data-confirm="Are you sure?">...</a> <a class="ajax confirm" href="/delete" data- id="42">...</a>
Performance (rps)
Performance (bytes)
Generation P • Модули готовые к изменениям • Модули готовые
к использованию • Skeleton готовый к использованию
Source https://github.com/bluzphp
Спасибо за внимание