Intereting Posts
Получить значение динамически выбранной константы класса в PHP Поместите мой логотип на страницу Paypal, когда мои продавцы продают какой-то продукт с моего сайта Карты Laravel и google: маркер или диаграмма foreach широты / долготы PHP REGEX – текст в массив по preg_split при разрыве строки Вставка значения даты в MySQL через PHP Как запустить файл CodeIgniter через CRON? упорядочить категорию и подкатегорию в php и Codeigniter Конфликты контроллера воспламенителя / имя модели Как разрешить ошибку «не в GROUP BY» в запросе mysql предотвращать автоматическое добавление косой черты при использовании parse_str Базовая защита паролем маршрута laravel без настройки базы данных? PHP – ошибка «заголовки уже отправлены» в зависимости от длины вывода? codeigniter Disallowed Key Characters – если все символы разрешены PHP / mySQL – как вставить вложенные строки в многомерную матрицу (php oop) статический метод vs нет статического метода

Зачем использовать ORM в PHP?

Недавно я начал изучать ORM, вопрос перескочил на мой взгляд:

Приложения PHP используют в основном MySql и Sqlite, почти все серверы PHP установлены так, поэтому стоит ли использовать ORM в PHP для обеспечения базы данных?

Как насчет производительности?

Независимость базы данных не является основной причиной использования ОРМ. то, что вы хотите иметь, – это общая абстракция базы данных. это может означать: простоту использования, более быстрое развитие, независимость базы данных, … в любом случае, обычно стоит использовать ORM. если ваше приложение всасывает всю вашу мощность процессора, вы можете использовать некоторый простой sql для оптимизации определенных запросов. Я думаю, это редкий случай.

вы можете прочитать это: Каковы преимущества использования ORM?

Существует несколько причин, по которым вы можете использовать ORM, о чем я могу думать:

  • Большинство ORM позволят вам проверять данные для INSERT и UPDATE.
  • ORM позволят вам сопоставлять имена столбцов в db с именами рабочих полей в вашем db. Это может быть удобно, если вы работаете с базой данных, которую кто-то еще разработал, и имеет странные имена столбцов.
  • Они также отлично справятся с отношениями для вас. (например, если вы получите строку, которая имеет отношение 1: m на одном из столбцов, вы получите подматрицу связанных элементов без необходимости вручную выполнять другой запрос).

Большинство причин использования ОРМ связаны со скоростью и простотой разработки.

Что касается производительности, я использовал доктрину с php раньше, и гидратация создала огромные накладные расходы по сравнению с простое извлечение строк.

Для независимости базы данных (и производительности) используйте PDO . Он встроен, его подготовленные операторы отлично подходят для предотвращения уязвимостей SQL-инъекций.

Если вы застряли на O / RM, он даже поставляется с небольшим OO-чутье … См. PDOStatement :: fetch (и некоторые другие методы fetchXxx).

Использование ORM облегчает избыточность написания кода шаблона, связанного с открытием подключения к базе данных, объединения соединений, подготовки оператора, выполнения инструкции, сопоставления результатов выполнения инструкции с чем-то более значимым и, наконец, закрытия соединения.

Гораздо чище сделать что-то вроде создания экземпляра объекта, установить его свойства, а затем вызвать операцию сохранения объекта. Такой тип стоимости стоит использовать ORM для ручного кодирования многих шагов, необходимых для взаимодействия с базой данных.

Кроме того, с помощью чистого ORM можно обменять базы данных с минимальным изменением на приложение.

Надеюсь, это поможет.

Что делать, если ваш сервер запускает PostgreSql или SQL Server – два других очень распространенных механизма баз данных.

Что делать, если вы хотите подключиться к устаревшей базе данных?

Кроме того, поддерживали ли вы какие-либо крупные проекты, которые напрямую связаны с базой данных? Это заставляет меня дрожать, когда я открываю файл, полный вызовов mysql_query .

Производительность … Зависит от ОРМ, о которой идет речь. Я больше знаком с ними в настройках .NET, и, конечно же, в этой среде существует большая разница в производительности, но обычно это компромисс с функциями.

Использование ORM увеличит ортогональность между вашим кодом и базой данных – это облегчит разработку и поддержку. Возможность переключения между базами данных является преимуществом этого, но, конечно, не единственной причиной.

ORM – это пустая трата времени. Это странно, поскольку он был разработан, чтобы сэкономить вам время :), но это правда. У меня была неосторожность использовать ORM на нескольких языках, и это не стоит. Существует в основном 2 типа проектов:

  1. Простые projcets с несколькими таблицами (иногда даже с одной таблицей), без аутентификации и т. Д., Скажем, просто простые автономные таблицы
  2. Комплексные проекты с множеством подключенных таблиц, просмотров и прочего. Возможно, больше баз данных.

    1. Да, не стесняйтесь использовать ORM, если вы знакомы с настройкой и как использовать его в своем мире пирога, но вы никогда не знаете, изменились ли требования к проекту, и вы в конце концов догадались, что вы когда-либо наступали на поле ORM 🙂
    2. Не используйте ORM, так как вы потратите больше времени на фиксацию «сгенерированного автоматически» материала, который ORM предоставляет. Я считаю, что некоторые ORM в настоящее время довольно продвинуты, но ORM здесь нравится (дикая догадка) 10 лет (на самом деле я верю, что это намного больше)? И очевидно, что это своего рода тупик. Это не заменит стандартный способ в будущем, сегодня тренд – это базы данных NOSQL.

На мой взгляд, ORM жив только благодаря рамкам, которые используют его внутри. И производительность? Я не уверен (так как я больше не использую его), но я считаю, что производительность тоже может быть проблемой. Вы должны заплатить хотя бы некоторую цену за то, что вы правильно отбракованы из запроса базы данных? Я думаю, что ORM была отличной идеей на бумаге, но она просто не работает.