Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ThinkPHP #7: Bluz - наш код как музыка
thinkphp_com_ua
July 25, 2013
Programming
0
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.1k
ThinkPHP #7: Адаптация веб-сайта под различные дисплеи
thinkphp_com_ua
0
2.1k
ThinkPHP #6: Usability кода
thinkphp_com_ua
0
1.3k
ThinkPHP #6: Нелёгкий труд интервьюера
thinkphp_com_ua
2
1.3k
ThinkPHP #6: Адаптивный дизайн - время пришло!
thinkphp_com_ua
0
1.4k
ThinkPHP #3: Highload не кусается
thinkphp_com_ua
1
1.9k
ThinkPHP #3: Оптимизация быстродействия Веб-сайта
thinkphp_com_ua
1
1.8k
ThinkPHP #3: Дизайн пользовательских интерфейсов для разработчиков
thinkphp_com_ua
1
1.8k
ThinkPHP #2: Безопасность веб приложений
thinkphp_com_ua
1
3.3k
Other Decks in Programming
See All in Programming
GitHub Flowでの高速なデリバリーをささえるテスト基盤について
kyong0612
0
130
量子コンピュータ時代のプログラミングセミナー / 20230119_Amplify_seminar _shift_optimization
fixstars
0
140
23年のJavaトレンドは?Quarkusで理解するコンテナネイティブJava
tatsuya1bm
1
110
AWSにおける標的型Bot対策
hacomono
0
390
Azure Functionsをサクッと開発、サクッとデプロイ/vscodeconf2023-baba
nina01
1
320
監視せなあかんし、五大紙だけにオオカミってな🐺🐺🐺🐺🐺
sadnessojisan
0
350
PHPアプリケーションにおけるアーキテクチャメトリクスについて / Architecture Metrics in PHP Applications
isanasan
1
180
Rによる大規模データの処理
s_uryu
2
610
KubeClarityで始めるSBOM管理 @3-shake SRE Tech Talk / 3-shake-sre-teck-talk-202212
masayaaoyama
0
290
LIFFで動く割り勘アプリTATEKAをリリースしてみた話
inoue2002
0
130
ipa-medit: Memory search and patch tool for IPA without Jailbreaking/ipa-medit-bh2022-europe
tkmru
0
120
爆速の日経電子版開発の今
shinyaigeek
0
120
Featured
See All Featured
Building Your Own Lightsaber
phodgson
96
4.9k
What the flash - Photography Introduction
edds
64
10k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
Debugging Ruby Performance
tmm1
67
11k
Designing for Performance
lara
601
65k
Building Flexible Design Systems
yeseniaperezcruz
314
35k
Gamification - CAS2011
davidbonilla
75
4.1k
The Invisible Side of Design
smashingmag
292
48k
4 Signs Your Business is Dying
shpigford
171
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
7
560
Building a Scalable Design System with Sketch
lauravandoore
451
31k
Making the Leap to Tech Lead
cromwellryan
116
7.6k
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
Спасибо за внимание