Что выбрать для работы с PHP - MySQL-ORM

hell0w0rd

Продвинутый новичок
Чего не сделаешь?
Внутри методов класса обращение к родительскому методу через parent::method_name. Если method_name не переопределен - можно вызывать $this->method_name. Проблем быть не должно
 

StalkerClasses

Новичок
Пробовал и $this и parent:: - ни то ни другое не срабатывает...
Почему-то выдается
Internal Server Error

Может быть что - то не правильно делаю по расширению данного класса?
 

StalkerClasses

Новичок
Попробовал, но проблема в том, что ничего не пишется в логах...

Ошибки включал так:
Код:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0

Вот , что делаю:

PHP:
class USERORM extends ORM {

        // предполагаем, что это будет наша новая функция - скопировал с where_like
        public function where_like_new_func($column_name, $value) {
            return $this->_add_simple_where($column_name, 'LIKE', $value);
        }

}

USERORM::configure('driver_options', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
USERORM::configure('mysql:host='.HOST.';dbname=' . DB);
USERORM::configure('username', USERNAME);
USERORM::configure('password', PASS);

$news = USERORM::for_table('news')->where_like_new_func('title', '%а%')->find_many();


<? echo $count;?>
    <ul>
        <?php foreach ($news as $element): ?>
          <li>
              <strong><?php echo $element->title;?></strong>
            </li>
        <?php endforeach; ?>
    </ul>
И не понимаю, что здесь может быть не так?
Может быть плохо понимаю работу данного класса, основанного на PDO?
 

StalkerClasses

Новичок
Расширяя класс, хотел бы просто добавить возможность выбора двух условий - "не помещено в архив, не скрыто"....
record_archive = 0
record_hide = 0
 

StalkerClasses

Новичок
Да, жалко, а так библиотека понравилась...
Менять конечно в исходниках самой библиотеки, думаю, что не буду так делать.
Поищу еще похожие библиотеки...

Что здесь еще не нашел, это оператор OR...
 

StalkerClasses

Новичок
Из того с чем я работал:
1. Doctrine 1, на лицо прекрасная страшная внутри, лучшее что было, но с неймспейсами беда.
2. Illuminate Database часть Laravel, можно использовать отдельно
4. PHP ActiveRecord
3. ORM от Kohana после доработки напильником нормально.
Хотелось бы взять одну библиотеку и использовать ее во всех проектах...
Так что бы изучить ее досконально и сделать одним рабочим инструментом.
 

StalkerClasses

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

php-activerecord - так понимаю что ниже все это идет описание про данную библитеки и относится к ней непосредственно
http://www.phpactiverecord.org/download
http://dhtmlexamples.com/2011/04/18/getting-started-with-open-source-php-activerecord-orm-library/
http://www.internet-technologies.ru/articles/article_1505.html

FluentPDO
http://fluentpdo.com/documentation.html#gettingStarted

Но как понял, php-activerecord - более продвинутая библиотека...
 

Gas

может по одной?
Нет, так пишут потому что появился late static binding в php5.3 и стало возможным сделать model::find(), а конкретнее, из статического метода получить статическое значение наследника, а не базового класса в котором определён метод (static:: вместо self:: )
 

Absinthe

жожо
Что сложного?
Изучай composer - простейшую консольную утилитку.
Нельзя стать программистом, не научившись пользоваться компьютером, как пользователь.
 

StalkerClasses

Новичок
Что сложного?
Изучай composer - простейшую консольную утилитку.
Нельзя стать программистом, не научившись пользоваться компьютером, как пользователь.
Даже и не понял, как это ставиться, к сожалению.
Наверное из-за отстутсвтия опыта...
Выдрать из какого-нибудь кртого фреймворка только классы для работы сБД - тоже не получилось...

Остановился на двух вот этих библиотеках:
http://www.notorm.com/
http://fluentpdo.com/index.html

И даже скорее на первой (т.к. ее получилось расширить), единственное что здесь не очень понравилось-
это запрос на извлечение таблицы строиться так $db->table_name - а не $db->from("table_name");

А в остальном, очень даже подходит!
Всем спасибо большое.
 

Фанат

oncle terrible
Команда форума
Я тут как раз подумал, глядя на толпы индусов со стаковерфлоя, что похапе юзеры не умеют в компромиссы. Им либо 1 вдребезги, либо 0 пополам.
Если наш юзер вдруг узнает про исключения, то начнёт пихать кетч натурально после каждого оператора.
Если однажды увидит квери билдер - так и будет с этого момента писать небольшую программу строк на 15 там, где достаточно одного короткого SQL запроса.

Понять, что квери билдер нужен ТОЛЬКО в случае, если требуется произвольный доступ к элементам запроса, у него не хватает опыта, извилин, или чего-то ещё. Мысль о том, что каждый инструмент должен применяться осмысленно и только для своей конкретной операции, а не для всего на свете - выше его понимания.

Что характерно - у авторов Флуента хватило ума показать пример как раз такого случая, когда использование билдера оправдано.
Авторы же ноторма радостно пишут эту вот ерунду
PHP:
$applications = $db->application()
->select("id, title")
->where("web LIKE ?", "http://%")
->order("title")
->limit(10)
;
там где нужна ровно одна строчка
PHP:
$apps = $db->getAll("SELECT id, title FROM application WHERE web LIKE ? ORDER BY title LIMIT 10", "http://%");
 
Сверху