Какой хороший способ инкапсулировать доступ к данным с помощью PHP / MySQL? - PullRequest
4 голосов
/ 22 августа 2008

Большая часть моего опыта связана со стеком MSFT, но сейчас я работаю над побочным проектом, помогая кому-то создать персональный сайт с дешевым хостингом, который построен на стеке LAMP. Мои варианты установки дополнений ограничены, поэтому мне интересно, как написать код доступа к данным без встраивания необработанных запросов в файлы .php.

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

Помните, что у меня аккаунт GoDaddy за 7 долларов в месяц, поэтому я ограничен тем, что уже установлено в их базовом пакете.

Редактировать: Спасибо rix0rr, Алан, Андерс, Дракон, я проверю все это. Я отредактировал вопрос, чтобы сделать его более открытым для решений ORM, поскольку они очень популярны.

Ответы [ 6 ]

3 голосов
/ 22 августа 2008

ActiveRecord на данный момент является современным. Я не могу рекомендовать хорошие фреймворки PHP для этого, хотя. Я попробовал Propel , который, хотя и неплохо, не так прост в настройке (особенно на хосте, на который вы ничего не можете установить).

В конечном итоге я развернул свою собственную среду ORM / ActiveRecord, которая не слишком сложна и очень поучительна. Я уверен, что другие люди могут порекомендовать хорошие фреймворки PHP.

2 голосов
/ 22 августа 2008

rix0rrr немного ударил по нему , так как многие инструменты очень сложно настроить. Конечно, у меня есть собственное решение этой проблемы, которое работало довольно хорошо в течение последних нескольких лет. Это проект под названием dbFacile

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

Вы упомянули, что не хотите встраивать необработанные запросы, но не хотите ORM, поэтому я немного озадачен тем средним уровнем, который вы надеетесь найти. У меня также есть проект ORM , цель которого - минимальная настройка и простота использования.

Единственное требование для моих проектов - PHP5.

2 голосов
/ 22 августа 2008

Может быть Доктрина сработает? Кажется, он вдохновлен Hibernate .

2 голосов
/ 22 августа 2008

Взгляните на Zend Framework , в частности, Zend_Db. Он имеет слой Database Abstraction, который не требует установки ничего, кроме расширения MySQLi, и не является полноценной моделью ORM.

0 голосов
/ 26 августа 2008

Вы также можете взглянуть на Прадо. http://www.pradosoft.com/ Используется активная запись и DAO. Кроме того, если вы используете .Net, то некоторые форматирования и соглашения похожи.

0 голосов
/ 22 августа 2008

Я бы попробовал рамки. Zend Framework был процитирован. Symfony кажется интересным. Он основан на идеях Ruby on Rails .

...