так себе вариант )
я все понял, просто для прикола альтернативный вариант предложил.
Форум → Программирование → Пыхнуть хотите? → Готовые решения → Велосипедные библиотеки
Велосипедные библиотеки
-
11 апреля 2010 г. 22:10, спустя 3 минуты 18 секунд
Сапожник без сапог -
19 апреля 2010 г. 22:30, спустя 8 дней 20 минут
для фронтенда нужно сделать систему двухпроходного рендеринга.
1) загружается и парсится шаблон с виджетами, добавляются js/css-файлы, генерируется page title, meta-парамтеры
2) полученная страница (body) ассигнится сюда вместе с прочей еруедой, добавленной в пункте 1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!–<meta http-equiv="Content-Type" content="text/html; charset=[:system.charset:]" />–>
<base href="[:system.url:]" />
[:system.js|safe:]
[:system.css|safe:]
<title>[:page.title:]</title>
{% if page.meta_keywords %}
<meta name="keywords" content="[:page.meta_keywords:]" />
{% endif %}
{% if page.meta_keywords %}
<meta name="Description" content="[:page.meta_description:]" />
{% endif %}
</head>
<body>
<!– debug disabled –>
[:page.body:]
</body>
</html>
в админке виджеты запускать нельзы, поэтому рендеринг однопроходный -
20 апреля 2010 г. 0:08, спустя 1 час 38 минут 1 секунду
хм, а может этот шаблон - лишняя прослойка? а биндить JS-файлы через str_ireplace('</head>', $js . '</head>', $page)? -
20 апреля 2010 г. 1:26, спустя 1 час 17 минут 40 секунд
а может эту прослойку сделать на нативном пыхе? У меня паранойя, что слишком много ресурсов уходит на генерацию страниц
upd: когда проектируешь и пишешь либы то все вроде бы славненько. Доходит дело до реального применения - они обрастают кучей хаков(( -
21 апреля 2010 г. 1:06, спустя 23 часа 39 минут 25 секунд
BL_Auth_Manager_Users занят созданием/удалением/редактированием пользователей.$this->um = BL_Auth_Manager_Users::instance()
->setSettings(array('users' => array('withoutNick' => true))) // этой строкой кода мы разрешили пользователям регистрироваться без логина, только с мылом
->setMessages(array(
/* тут можно выставлять свои сообщения об ошибках (локализированные). Автоматическая локализация error-msg также планируется */
))
// изначально BL_Auth_Manager_Users всеравно какая длина у нашего пароля. Но мы хотим задать ограничения: не короче 3 символов и не длиннее 20
->addRule(BL_Auth_Manager_Users::CREATE, 'pass', 'length', array(), array(3, 20));
единственное что плохо - для UPDATE тоже нужно будет прописывать эту стоку, что мне не нравится. Ну и с подтверждением пароля нужно как-то самому колдовать, еще одну инстанцию валидатора отдельно создаватьСпустя 91 сек.я думаю, что можно как-то совместить через BL_Auth_Manager_Users::CREATE & BL_Auth_Manager_Users::UPDATE, но я не силен в побитовых операциях -
21 апреля 2010 г. 1:33, спустя 27 минут 1 секунду
upd: когда проектируешь и пишешь либы то все вроде бы славненько. Доходит дело до реального применения - они обрастают кучей хаков((
У меня всё время такая фигня, только последнее время всё меньше и меньше… -
-
21 апреля 2010 г. 4:07, спустя 42 минуты 26 секунд
просто боюсь что не потяну такое.
Что если через главный класс (BL_Application) получать инстанции всего и где-то в конфиге описывать что есть что:
$this->app->load('db'); // вернет BL_Database или какой-то другой класс, совместимый с чем-то там.
upd: Да, так и буду делать. -
-
24 апреля 2010 г. 13:39, спустя 3 дня 9 часов 54 минуты
после знакомства с Маджентой я подредактировал структуру директорий:
code/
–core/ # BL
–local/ # свои классы (свой translate-драйвер, которого нет в BL)
–modules/
—-backend/
—-frontend/
–vendors/ # Twig, ZF, Geshi, Jare, …
–bootstrap.php
var/
–cache/
—-template/ # скомпиллированные шаблоны от Twig
—-static/ # css-,js-файло
——minified/
——gzipped/
–log/ # error.log'и
–session/ # файлы сессий -
24 апреля 2010 г. 13:32, спустя 23 часа 53 минуты 28 секунд
Абырвалг, Magento просвещает =)))Спустя 56 сек.я после того как начал ее хуячить тоже много чего переосмыслил)))) -
9 мая 2010 г. 11:50, спустя 14 дней 22 часа 18 минут
[h2]nested transactions[/h2]$trans = $this->db->transaction('my-transaction'); // уникальный идентификатор транзакции
$trans->query('INSERT INTO :table_one SET ?@', array('foo' => 'bar'));
// где-то в другом классе
$this->db->transaction('my-transaction')->query('DELETE FROM :table_two WHERE id > 50'); // получаем вот ту нашу транзакцию
$trans->commit(); // коммитим ее. Но это не обязательно, все транзакции автокоммичутся по деструктору -
9 мая 2010 г. 13:46, спустя 1 час 55 минут 59 секунд
а на одном соединении в Mysql можно стартовать две транзакции одновременно? -
9 мая 2010 г. 14:07, спустя 20 минут 42 секунды
сомневаюсь. Поэтому и сделал свой BL_Database_TransactionStorage, позволяющий делать это -
9 мая 2010 г. 14:29, спустя 21 минуту 33 секунды
Абырвалг, что, всё можно сделать таким сложным что надо две транзакции в php скрипте? 4)
Пожалуйста, авторизуйтесь, чтобы написать комментарий!