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

StalkerClasses

Новичок
Посоветуйте пожалуйста, начинаю изучать данную тему, какой фреймворк выбрать для работы с mysql-запросами и ORM. Желательно что бы было визуально просто для восприятия (по коду), а также что бы было из серии загрузил на FTP - сделал include - библиотеки, и можно использовать.
 

StalkerClasses

Новичок
Да, это очень подходит - idiorm - мне очень понравился.
Спасибо.

Вот только не пойму, почему не получается с ним работать.
Собственно две проблемы - он требует какое-то PDO - на втором моем хостинге - и работать с ним не получается.
А на первом - вроде бы запустилось - даже к БД-подключился...

Но вот почему то при запросе:
$contact_list = ORM::for_table('contact')->find_many();

Вместо всех записей - выберается только одна. И не пойму почему?
Остальные функции вроде бы работают.
Что то наверное не так делаю?
 

WMix

герр M:)ller
Партнер клуба
Посоветуйте пожалуйста, начинаю изучать данную тему, какой фреймворк выбрать для работы с mysql-запросами и ORM. Желательно что бы было визуально просто для восприятия (по коду), а также что бы было из серии загрузил на FTP - сделал include - библиотеки, и можно использовать.
ну это про safemysql не?
 

AmdY

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

StalkerClasses

Новичок
Из того с чем я работал:
1. Doctrine 1, на лицо прекрасная страшная внутри, лучшее что было, но с неймспейсами беда.
2. Illuminate Database часть Laravel, можно использовать отдельно
4. PHP ActiveRecord
3. ORM от Kohana после доработки напильником нормально.
1. Судя по всему - это сложно и не рекомендуете
2. Почитал документацию - слишком много всего
4. Вот это заинтересовало - только не пойму, это дело можно подключать через банальный include в скриптах?
Судя по всему оно так и есть..(про include).. А в плане каких-то дополнительных установленных PHP-модулей он что нибудь требует - PDO - к примеру?
3. Сложно.
 

AmdY

Пью пиво
Команда форума
PDO не дополнительный, а элемент ядра, а вот mysql_* - это депрекейтид и скоро будет выброшено.

как подключать AR есть в документации http://www.phpactiverecord.org/projects/main/wiki/Configuration__Setup

1. Судя по всему - это сложно и не рекомендуете
Наоборот, я не не представляю как быть без нормальной ORM, я уже даже толком не помню как пользоваться INNER JOIN, так как всю магию творит ORM. В то же время у меня нет запросов SELECT * FROM foo WHERE id, везде как минимум идёт проверка на удаление, вроде
SELECT * FROM foo WHERE id AND a.deleted_at IS NULL
SELECT * FROM foo WHERE name = ? AND a.deleted_at IS NULL
Таскать по всем скриптам знание об этом AND a.deleted_at IS NULL - увольте, один раз подключил плагин или обсервер и забыл.
 

StalkerClasses

Новичок
PDO не дополнительный, а элемент ядра, а вот mysql_* - это депрекейтид и скоро будет выброшено.

как подключать AR есть в документации http://www.phpactiverecord.org/projects/main/wiki/Configuration__Setup


Наоборот, я не не представляю как быть без нормальной ORM, я уже даже толком не помню как пользоваться INNER JOIN, так как всю магию творит ORM. В то же время у меня нет запросов SELECT * FROM foo WHERE id, везде как минимум идёт проверка на удаление, вроде
SELECT * FROM foo WHERE id AND a.deleted_at IS NULL
SELECT * FROM foo WHERE name = ? AND a.deleted_at IS NULL
Таскать по всем скриптам знание об этом AND a.deleted_at IS NULL - увольте, один раз подключил плагин или обсервер и забыл.
В общем изучаю.
Спс.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Таскать по всем скриптам знание об этом AND a.deleted_at IS NULL - увольте, один раз подключил плагин или обсервер и забыл.
Мне кажется, я уже писал в каком-то треде, что этот момент замечательно разруливается при помощи представлений и триггеров / правил на них. С тем дополнительным плюсом, что человек, имеющий права только на работу с представлением, не напакостит в базе даже давая запросы из консоли.
 

AmdY

Пью пиво
Команда форума
Sad Spirit
есть такое, но я побаиваюсь баз данных и стараюсь делать всё на стороне php кода.
fixxxer
я не горжусь, да и это не замена sql, а знания поверх его. джойны с условиями и группировками, приправленное под orm - гремуча смесь.
 

Absinthe

жожо

hell0w0rd

Продвинутый новичок
Absinthe
Неоднозначные на самом деле эмоции при ее использовании)) Вроде обрадовался что поддерживает composite primary keys, а потом обломился узнав что для datetime надо свой тип создавать с __toString
А в целом кроме уродского интерфейса query-builderа все ок)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
мне последнее время приходится использовать много смеси ActiveRecord с SQL, и это довольно удобно
 

fixxxer

К.О.
Партнер клуба
Вообще если вернуться к оригинальному определению Фаулера, то Active Record - это:

An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.

Про то, пишется sql ручками или нет, ничего не сказано.
 

StalkerClasses

Новичок
Вопрос про библиотеку idiorm
PHP:
class ORMclassForProject extends ORM {

       // Здесь идут новые функции
        public function where_page_id($column_name, $value) {
            return $this->_add_simple_where($column_name, 'LIKE', $value);
        }

}
Пытаюсь сделать наследование класса с названием ORMclass.
В него хотел бы занести несколько новых функций.

-
Все прекрасно работает -
$pageList = ORMclassForProject::for_table('page')->find_many();

до тех пор, пока не сделаю, вызываю данную функцию...

Что может быть не правильно?
 
Сверху