[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Мой мини фреймворк
Страницы: 1, 2, 3
sodroot
Доброго времени суток форумчане!
Решил написать фреймворк который будет прост как ничто другое и в тоже время удовлетворять минимальным потребностям. То есть, чтобы не было возможности бегать по левым урлам и встроенное легко настраиваемое ЧПУ. Функционала там минимум, только соедение с базой и мини библиотека для работы с базой. В дальнейшем я буду туда запихивать нужный мне функционал с других фреймворков или буду сам писать, это не суть.
Интересуют ваши комментарии по доработке или изменению функционала самого ядра, может что-то раком реализовал)

Контакты: (если захотите со мной пообщаться)
Skype: Sillys.dev
ICQ: 4731444

P.S. За толковое высказывание или критику +1 в карму smile.gif
ilyaplot
1. Не вижу смысла прописывать столько констант в index.php. С ростом фреймворка их все не запомнить.

2. Для классов я бы использовал неймспейсы или префиксы, т.к. я с удовольствием бы назвал класс валидации форм Validation

3. Не понятен смысл смешанного стиля. Вроде и ооп, а вроде и нет

4. Бд... Допустим, у меня используется 100 моделей для построения статистики. В классе Database в конструкторе создается новое соединение с базой данных. Следовательно, при инициализации каждой модели я получу 100 соединений в одном скрипте. Советую вынести соединение с бд в статику. Лично мне нравится как это сделано в Yii. Там, кстати, соединение с бд открывается только при наличии запроса. (Не проверял, но судя по коду, так оно и есть).

5. getClearRoute почему не в Router.php? Для того, что бы разобраться как работает один компонент, приходится просматривать весь фреймворк. Вообще почитайте про static в классах

_____________
Заработай на Userator
ilyaplot
Шаблонизатор можно сделать еще проще. Достаточно передать переменные из массива, а не инклудить файл.

К тому же уязвимость...



$data = array('view'=>'Любой PHP файл')

foreach ($data as $key => $value)
$$key = $value;

include(AppViewPath."/$view.php");




_____________
Заработай на Userator
ilyaplot
Откройте для себя цункцию extract

_____________
Заработай на Userator
twin
ilyaplot
extract()

Лучше поздно, чем никогда))

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sodroot
Цитата (ilyaplot @ 24.04.2013 - 11:24)
1. Не вижу смысла прописывать столько констант в index.php. С ростом фреймворка их все не запомнить.

2. Для классов я бы использовал неймспейсы или префиксы, т.к. я с удовольствием бы назвал класс валидации форм Validation

3. Не понятен смысл смешанного стиля. Вроде и ооп, а вроде и нет

4. Бд... Допустим, у меня используется 100 моделей для построения статистики. В классе Database в конструкторе создается новое соединение с базой данных. Следовательно, при инициализации каждой модели я получу 100 соединений в одном скрипте. Советую вынести соединение с бд в статику. Лично мне нравится как это сделано в Yii. Там, кстати, соединение с бд открывается только при наличии запроса. (Не проверял, но судя по коду, так оно и есть).

5. getClearRoute почему не в Router.php? Для того, что бы разобраться как работает один компонент, приходится просматривать весь фреймворк. Вообще почитайте про static в классах

1) Понял. Имеете в виду сделать например 2 основные приложения и системной папки и от них отталкиваться.

2) Где можно почитать про это?)

3) Вы по поводу Router.php?)

4) Ок. Переделаю.

5) Думал удобнее вынести все функции в отдельный файл)
Michael
За зачем вот эти проверки?

if (!function_exists('t')) {
function t($message) {
return die($message);
}
}


_____________
There never was a struggle in the soul of a good man that was not hard
sodroot
ilyaplot, twin Спасибо! Не знал про такую)
ilyaplot
Неймспейсы
twin, имеешь в виду, что лучше сразу ссылку давать на давно переведенный на родной язык официальный сайт?

_____________
Заработай на Userator
sodroot
Цитата (Michael @ 24.04.2013 - 11:38)
За зачем вот эти проверки?

if (!function_exists('t')) {
function t($message) {
return die($message);
}
}

Видел что так делают в популярных фреймворках, например в Yii)
johniek_comp
Цитата
Видел что так делают в популярных фреймворках, например в Yii)

ужс

_____________
user posted image
sodroot
Цитата (ilyaplot @ 24.04.2013 - 11:27)
Шаблонизатор можно сделать еще проще. Достаточно передать переменные из массива, а не инклудить файл.

К тому же уязвимость...



$data = array('view'=>'Любой PHP файл')

foreach ($data as $key => $value)
$$key = $value;

include(AppViewPath."/$view.php");

Можно подробнее, что за уязвимость?)
Michael
Цитата (sodroot @ 24.04.2013 - 13:43)
Цитата (Michael @ 24.04.2013 - 11:38)
За зачем вот эти проверки?

if (!function_exists('t')) {
function t($message) {
  return die($message);
}
}

Видел что так делают в популярных фреймворках, например в Yii)

В Yii вроде нет такого специально. Там вообще своими функциями не пользуются, чисто объектами. В вордпресс вижу есть такая проверка.
Мне кажется это лишнее, особенно для функций ядра.

_____________
There never was a struggle in the soul of a good man that was not hard
sodroot
Цитата (Michael @ 24.04.2013 - 11:49)
Цитата (sodroot @ 24.04.2013 - 13:43)
Цитата (Michael @ 24.04.2013 - 11:38)
За зачем вот эти проверки?

<pre class="sh_sourceCode" rel="php"><span class="sh_control">if</span> <span class="sh_symbol">(!</span><span class="sh_function">function_exists</span><span class="sh_symbol">(</span><span class="sh_string">'t'</span><span class="sh_symbol">))</span> <span class="sh_cbracket">{</span>
<span class="sh_keyword">function</span> <span class="sh_function">t</span><span class="sh_symbol">(</span><span class="sh_variable">$message</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span>
  <span class="sh_control">return</span> <span class="sh_function">die</span><span class="sh_symbol">(</span><span class="sh_variable">$message</span><span class="sh_symbol">);</span>
<span class="sh_cbracket">}
}</span></pre>

Видел что так делают в популярных фреймворках, например в Yii)

В Yii вроде нет такого специально. Там вообще своими функциями не пользуются, чисто объектами. В вордпресс вижу есть такая проверка.
Мне кажется это лишнее, особенно для функций ядра.

Ок. Понял.
kaww
johniek_comp, Michael,
такой подход используется когда в методе класса определяется функция и при повторном вызове этого метода необходимо делать проверку на существование этой функции.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.