Стандартные ООП-методы для листинга PHP-проектов в стиле - PullRequest
4 голосов
/ 01 сентября 2009

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

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

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

class project {

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

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

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

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

1 Ответ

4 голосов
/ 01 сентября 2009

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

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

Если вы хотите создать действительно хороший модульный ООП-сайт и улучшить его с помощью ООП, я бы предложил использовать некоторую инфраструктуру MVC (модель-представление-контроллер) с открытым исходным кодом, такую ​​как cakePHP.

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

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