Микрофреймворк PrettyBits Micro (20 Кб) - первая версия

12
PN
На сайте с 22.08.2012
Offline
103
1664

Уважаемые форумчане! С радостью представляю микрофреймворк PrettyBits Micro! Его размер всего 20 Кб. На нем можно создавать приложения различной степени сложности. К фреймворку (один файл) прилагается полная документация и демонстрационное приложение, показывающее возможности фреймворка. Желающие могут его протестировать и написать свои пожелания.

Всем заранее спасибо за тестирование!

Сайт фреймворка PrettyBits Micro

Мой совет помог? Не скупись! Bitcoin 1Lseddet1o1B6odgXQHbGaWGwRkt1Db8Ef Ethereum 0x450f1a17461e25194B7F9226cDEe70173F39e1e1
Оптимизайка
На сайте с 11.03.2012
Offline
396
#1


$article = $category->articles()->where('url', $request->url)->first();
if (!$article->exists()) Error::create(404);
$article->views++;
$article->save();

на каждый просмотр статьи?! OMG!

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
PN
На сайте с 22.08.2012
Offline
103
#2
Оптимизайка:

$article = $category->articles()->where('url', $request->url)->first();
if (!$article->exists()) Error::create(404);
$article->views++;
$article->save();


на каждый просмотр статьи?! OMG!

в этих 4 строчках:

1. контроль ЧПУ (правильность URL категории)

2. проверка существования статьи

3. увеличение кол-ва просмотров

4. сохранение кол-ва просмотров

А просто вывести статью легко:


$article = Article::where('url', $request->url)->first();
kxk
На сайте с 30.01.2005
Offline
990
kxk
#3

proksey-net, А, где кеширование и тп ? Фрейм летит под php 7?

---------- Добавлено 06.03.2016 в 18:58 ----------

proksey-net,

Article::where('views<100')->get(); //выбрать все статьи с views<100 (так не рекомендуется делать - могут быть SQL-инъекции)

- Почему не фильтруете всех входящих?

Ваш DEVOPS
PN
На сайте с 22.08.2012
Offline
103
#4
kxk:
proksey-net, А, где кеширование и тп ? Фрейм летит под php 7?

Под PHP 7 не тестировал. С кэшированием и всем остальным уже не получится микро:)

---------- Добавлено 06.03.2016 в 18:59 ----------

kxk:
proksey-net, А, где кеширование и тп ? Фрейм летит под php 7?

---------- Добавлено 06.03.2016 в 18:58 ----------

proksey-net,

- Почему не фильтруете всех входящих?

DataModel работает через PDO. Может он и фильтрует.

kxk
На сайте с 30.01.2005
Offline
990
kxk
#5
Выполнение любых запросов к базе данных

- нужно кешировать, как сами запросы так и блочно и постранично.

Без развитой системы кеширования framework мёртв.

---------- Добавлено 06.03.2016 в 19:01 ----------

proksey-net, Без кеширования 30к запросов положат и Xeon с 32 Гб рам.

А, 30к это очень мало в наше время.

Оптимизайка
На сайте с 11.03.2012
Offline
396
#6
proksey-net:

3. увеличение кол-ва просмотров
4. сохранение кол-ва просмотров

Мне показалось, что сохранение всех записей, а не только поля views. У вас же нет контроля только тех полей, что изменились. Но даже и это при большой нагрузке плохо, да и бесмысленно, т.к. статью будут "читать" роботы в том числе. Хотя для демо приложения нестрашно, просто FYI ( я просто в состоянии аффекта от попыток оптимизации одного проекта с такими-же счетчиками :) )

PN
На сайте с 22.08.2012
Offline
103
#7
Оптимизайка:
Мне показалось, что сохранение всех записей, а не только поля views. У вас же нет контроля только тех полей, что изменились. Но даже и это при большой нагрузке плохо, да и бесмысленно, т.к. статью будут "читать" роботы в том числе. Хотя для демо приложения нестрашно, просто FYI ( я просто в состоянии аффекта от попыток оптимизации одного проекта с такими-же счетчиками :) )

это просто демонстрация UPDATE, не более того:)

irisat
На сайте с 20.03.2012
Offline
197
#8
proksey-net:
это просто демонстрация UPDATE, не более того

Рановато - рынок сейчас балованный!)

LocalBitcoins (https://goo.gl/1Yxi8M) | Бот обменник (https://goo.gl/bPTaiF) - Покупка и продажа bitcoins! Биржа криптовалют №1 (https://goo.gl/6r6icz) - более 350 пар!
DiAksID
На сайте с 02.08.2008
Offline
236
#9

микрофреймворк на пыхе смысла не имеет - идеологически не проходит под контингент. но за демонстрацию упорства одназначный +...

show must go on !!!...
S
На сайте с 23.05.2004
Offline
315
#10
DiAksID:
микрофреймворк на пыхе смысла не имеет - идеологически не проходит под контингент

Офигенно подходит, только кто бы смог реализовать.

$article = $category->articles()->where('url', $request->url)->first();
if (!$article->exists()) Error::create(404);

За что и не люблю фрейморки, вместо программирования изучаешь тараканов разработчика.

"$request->url" - глабальные переменные зло

"->first();" - order by ?

"Error::create(404)" - этоv view, но не create. Где тут создание своей create ?

$article->views++;
$article->save();

весь объект сохраняем ? А на кой, когда достаточно только одно поле обновить. "$article->update('views'+1)" как то так. Мало ли что там в тот момент в соседней транзакции происходит.

Router::map('get', '/delete/{id}', ['as'=>'article_delete_comment', 'rules'=>['id'=>'\d*']], 'delete@ArticleController');

А чем это отличается от "DELETE FROM article_comment WHERE id = {$id}" ?

Простая SQL конструкция обернута в очередной придуманный синтаксис, который не содержит ни одной проверки.

Это просто подпись.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий