Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Bluz - наш код как музыка.
Search
fwdays
October 21, 2013
Programming
69
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Bluz - наш код как музыка.
fwdays
October 21, 2013
More Decks by fwdays
See All by fwdays
Symfony best practices и не только Олег Зинченко
fwdays
0
2.2k
Beyond Testing Михаил Боднарчук
fwdays
0
910
Yii2 - на пути от Alpha до GA. Взгляд с практической стороны Александр Бордун
fwdays
0
2k
Laravel 4: простота во всем. Евгений Косинский
fwdays
0
1.1k
Маленькая библиотека для большой компании. Антон Шевчук
fwdays
0
3.9k
Phalcon. Что нового? Александр Торош
fwdays
0
1.3k
Выбираем поисковик умом головы. Андрей Аксенов
fwdays
0
1.6k
Past, Present, and Future: The Evolution of PHP Development. Nate Abele
fwdays
0
960
Функциональный тулчейн Nix
fwdays
1
580
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
470
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
450
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
630
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
120
Heart of Swift Concurrency
koher
0
1.2k
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
270
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
カツオ、ご期待ください
suneo3476
0
150
Verilogで学ぶCPU自作入門.pdf
uyuki234
8
4k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
550
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
110
APNsからLive Activityを開始する話
yumnumm
0
150
Featured
See All Featured
Amusing Abliteration
ianozsvald
1
330
The SEO identity crisis: Don't let AI make you average
varn
0
580
Statistics for Hackers
jakevdp
799
230k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Side Projects
sachag
456
43k
Navigating Team Friction
lara
192
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
420
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
BBQ
matthewcrist
90
10k
Unsuck your backbone
ammeep
672
58k
Transcript
Bluz – наш код как музыка Антон Шевчук NIX Solutions
Ltd. http://anton.shevchuk.name @AntonShevchuk
Music? O RLY?
Why? • Почему не "as is"? • Почему не ZF2/Symfony2?
• Почему не Yii? • Почему не Kohana/CodeIgniter? • Почему не Silex/Slim/etc? • Почему не Phalcon?
Usability кода • Стандарты кодирования • Отсутствие избыточности • Читаемость
кода • Предсказуемость кода
Usability кода. Profit! • Изучаю проект за час • Нахожу
баги по скриншоту • Копирую и работает
PHP 5.4+ • PSR-0 • PSR-1 • PSR-2 • PSR-3
• namespaces • closures • traits • goto
Ещё… • Composer • RequireJS (for AMD) • jQuery •
Twitter Bootstrap • GitHub - https://github.com/bluzphp • Travis CI • support redactorjs • support backbone
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 { }
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); };
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>
Help! • RESTFul Controller • CRUD Controller • Grid компонент
• DBQuery Builder • Mailer ~~ PHPMailer • Translate ~~ gettext
Write less do more <a class="ajax" href="/get">...</a> <a class="confirm" href="/block"
data-id="42" data-confirm="Are you sure?">...</a> <a class="ajax confirm" href="/block" data-id="42">...</a> <form action="/login" class="ajax" > <input type="text" name="login"/> <input type="password" name="password"/> <button type="submit"> </form>
Perfomance (jmeter)
Perfomance (memory)
Generation P • Модули готовые к изменениям • Модули готовые
к использованию
Source https://github.com/bluzphp
Спасибо за внимание