2009-09-01 2 views
4

Я создаю сайт фриланса (думаю, скрипт), который имеет списки проектов как на главной странице, так и на странице с листингами. Я думал, что это будет хороший шанс внедрить методы ООП.Стандартные методы ООП для создания списка проектов PHP

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

Я хотел бы создать класс что-то вроде:

class project { 

    ... 
    public function PrintSmallListing() {  
     echo "<div id="smallListing"> 
        <h2>Listing Title</h2> 
        <span>listing description</span> 
        ... 
       </div>"; 
      } 
    } 

Затем на соответствующих страницах я бы выполнить запрос к базе данных, то Переберите в результате создать массив этих объектов на основе данных из запроса. Я бы затем отобразил список проектов, перейдя через массив объектов и позвонив

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

Итак, мой вопрос в том, является ли это хорошим способом реализации ООП на PHP, существуют ли некоторые методы после использования ООП для такого рода проблем? или как вы лично это сделаете?

ответ

4

Ну, это ООП, поскольку вы используете объекты. Все, что использует объекты, - ООП.

Но нет, вы используете его совершенно неправильно. Такой вид приложения будет невозможно поддерживать в будущем. Чтобы изменить дизайн страницы, вам нужно будет найти более 100 файлов и внести соответствующие изменения в каждый из них.

Если вы хотите создать действительно хороший модульный сайт OOP и стать лучше с OOP, я бы предложил использовать некоторую среду MVC с открытым исходным кодом (model-view-controller), такую ​​как cakePHP.

Общей практикой, которая также используется в MVC, является разделение вида. Это означает, что ваше мнение не должно зависеть от бизнес-логики, а бизнес-логика не должна зависеть от представления. Таким образом, когда придет время менять дизайн - вы можете просто поменять его. Кроме того, ваша бизнес-логика не обрабатывается различными тегами html или функциями рендеринга.

+1

Я думаю, что это хорошая идея, чтобы понять эту концепцию не только в аспекте php вашего приложения, но и в интерфейсе. Посмотрите на статью о разделении структуры/представления/поведения, подобном этой: (она старая, но я думаю, что она получает эту идею) /http://www.mercurytide.co.uk/news/article/separation-structure-presentation-and -behaviour/ – GmonC

+0

Хорошая статья. Добавил его в избранное. Btw, еще одна хорошая статья по аналогичной теме: http://martinfowler.com/eaaDev/uiArchs.html – bezmax

+0

«Все, что использует объекты, это ООП». Глядя на это единственное заявление, я практически не мог больше не согласиться. http://stackoverflow.com/questions/656836/explanation-of-re-usable-structures-in-oo-php/656975#656975 http://stackoverflow.com/questions/1343619/real-world-oop-example -php/1343881 # 1343881 http://stackoverflow.com/questions/1197616/can-you-help-me-understand-php-classes-a-little-better/1197679#1197679 –

Смежные вопросы