Спасибо что указали на явный косяк каталога livestreet, если там держать старые версии файлов вместе с новыми, то по-дефолту почему-то отдаются старые. Я их подтёр, теперь всё из коробочки верно должно быть!
По теме — полностью поддерживаю «нормализацию» и уход от регулярок там, где им точно не место
Офтопик — Было бы ещё круто ввести дополнительные хуки для работы с _любыми_ видами топиков. Я, например, делаю плагин, который для всех типов контента будет генерить ЧПУ — а получается что к топикам типа Опрос и Ссылка никак без бубна не подключиться :( А как жить плагину, если типов контента за счёт других плагинов будет больше?
Просто многие следуют принципу «что слышу, то пою», а те кто им изначально это напел наверное погоняли какой-нить стандартный ORM Framework против «пустных» запросов и решили «что они все такие». Я сам когда-то сравнивал Doctrine и AdoDB — и да, doctrine в 30 раз медленее AdoDB, но всё равно в пределах тысячных секунды. Это всё статичный оверхед, и с ним можно спокойно жить :)
Вообще ORM — это очень удобно, если заранее не зацикливаться над сумасшедшей гибкостью, а иметь стандартный и небольшой набор хорошо обкатаных и документированых функций для разработчиков. Это я к тому, что целиком и полностью поддерживаю инициативу Ajaxy.
Мои пять копеек к «внутренностям»:
1. Вместо предложеного дефолтного метода Add() (и, как я полагаю ещё и Update()) иметь один центральный метод Save(). Если нет ID то будет создаваться новая запись в СУБД, если есть, то будет апдейтиться старая.
2. Очень хотелось бы видеть в какой-нибудь далёкой версии LS дельную имплементацию Unit Of Work — проще говоря, я в скрипте загружаю и меняю объекты, а все эти изменения пишутся в базу «одним махом» в ходе одной транзакции.
3. Мне кажется что так же было бы крайне круто иметь стандартный magic метод для сеттеров и геттеров во всех объектах ORM, что-то типа:
<?php
//Magic Setter
public function __set($key,$val) {
if(method_exists($this,'set'.ucfirst($key))){
$functionName = 'set'.ucfirst($key);
return $this->$functionName($val);
}
if(property_exists($this,$key)) {
$this->$key = $val;
return true;
}
throw new Exception('Property "'.$key.'" unknown');
}
//Magic getter
public function __get($key) {
if(method_exists($this,'get'.ucfirst($key))){
$functionName = 'get'.ucfirst($key);
return $this->$functionName();
}
if(property_exists($this,$key)) {
return $this->$key;
}
throw new Exception('Property "'.$key.'" unknown');
}
?>
мне кажется что в движке не хватает дефолтного «создателя» пустых плагинов, что-то типа scaffold, думаю что можно легко организовать на уровне шелл скрипта
Вообще я поковырялся в плагине Вадима — как я понял он переопределил добавление топика… и что-то я там нигде не нашёл вызов хука «topic_add_after» — может быть в этом проблема?
Правда там другая проблема… я не совсем понял как работают кишки LS но хук «topic_add_after» получается занят blogextender и он не срабатывает у меня. Соответственно новые посты без комментариев в Мои Вещи не попадают. Может быть знаешь что там надо настроить чтобы всё было чики-пики?
Правда там другая проблема… я не совсем понял как работают кишки LS но хук «topic_add_after» получается занят blogextender и он не срабатывает у меня. Соответственно новые посты без комментариев в Мои Вещи не попадают.
Офтопик — Было бы ещё круто ввести дополнительные хуки для работы с _любыми_ видами топиков. Я, например, делаю плагин, который для всех типов контента будет генерить ЧПУ — а получается что к топикам типа Опрос и Ссылка никак без бубна не подключиться :( А как жить плагину, если типов контента за счёт других плагинов будет больше?
кстати, это можно сделать и для плагинов, а то многие только на русском
Мои пять копеек к «внутренностям»:
1. Вместо предложеного дефолтного метода Add() (и, как я полагаю ещё и Update()) иметь один центральный метод Save(). Если нет ID то будет создаваться новая запись в СУБД, если есть, то будет апдейтиться старая.
2. Очень хотелось бы видеть в какой-нибудь далёкой версии LS дельную имплементацию Unit Of Work — проще говоря, я в скрипте загружаю и меняю объекты, а все эти изменения пишутся в базу «одним махом» в ходе одной транзакции.
3. Мне кажется что так же было бы крайне круто иметь стандартный magic метод для сеттеров и геттеров во всех объектах ORM, что-то типа:
мне кажется что в движке не хватает дефолтного «создателя» пустых плагинов, что-то типа scaffold, думаю что можно легко организовать на уровне шелл скрипта
И первый хук «topic_add_after» не выполняется если другой плагин «его занимает» :(
Я попробовал — почти всё работает.
Правда там другая проблема… я не совсем понял как работают кишки LS но хук «topic_add_after» получается занят blogextender и он не срабатывает у меня. Соответственно новые посты без комментариев в Мои Вещи не попадают. Может быть знаешь что там надо настроить чтобы всё было чики-пики?
Правда там другая проблема… я не совсем понял как работают кишки LS но хук «topic_add_after» получается занят blogextender и он не срабатывает у меня. Соответственно новые посты без комментариев в Мои Вещи не попадают.