Каковы некоторые полезные способы использования классов в PHP? - PullRequest
1 голос
/ 28 января 2009

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

Помимо этого примера, каковы другие полезные способы практического использования классов?

Ответы [ 7 ]

2 голосов
/ 28 января 2009

Это действительно хорошая идея прочитать код других людей и посмотреть, как они разделяют вещи на классы. Посмотрите на некоторые PEAR модули или рамки ( Zend , Symfony , Cake).

2 голосов
/ 28 января 2009

Я использую класс базы данных все время.

Вот пара примеров:

http://www.massless.org/_tests/phpdb/

http://slaout.linux62.org/php/index.html

http://www.tonymarston.net/php-mysql/databaseobjects.html

1 голос
/ 28 января 2009

Каждый раз, когда вы можете определить «вещь», которая «делает вещи», у вас есть кандидатура для определения объекта. Два конкретных примера из стандартной библиотеки PHP, которые сразу приходят на ум:

  • Многочисленные модули баз данных используют объекты для соединений, запросов и результатов.
  • Класс DateTime инкапсулирует общую концепцию времени с форматированием ввода и вывода, преобразованием часового пояса и арифметикой даты.

Дело в том, что объектно-ориентированное программирование - большая идея - вы можете решить практически любую проблему программирования объектно-ориентированным способом.

0 голосов
/ 30 января 2009

Я создал пользовательский класс для выполнения различных задач, связанных с пользователями в моем веб-приложении, таких как вывод аватара, отображение количества сообщений и т. Д.

Выезд http://en.wikipedia.org/wiki/Cohesion_(computer_science)

Ваш пример звучит как логическое единство.

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

Отличным примером этого является sfParameterHolder от Symfony:

http://www.symfony -project.org / книга / 1_2 / 02-Исследуя-Symfony-s-код # chapter_02_sub_parameter_holders

Symfony использует его для хранения переменных для шаблонов представления (в MVC), для хранения параметров запроса в объекте веб-запроса (сам класс, который представляет все параметры запроса, должным образом очищенные от обратной косой черты и т. Д.), В классе sfUser для хранения всех параметры, которые в конечном итоге входят в $ _SESSION и т. д. и т. д.

Загрузите «песочницу» Symfony, перейдите в папку / lib / symfony / и изучите ее. Это сложно, но код imho очень чистый.

http://www.symfony -project.org / установка

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

0 голосов
/ 29 января 2009

Я очень рекомендую узнать о [шаблонах проектирования] [1]. Многие из них хорошо используют классы и решают общие проблемы программирования. В частности, шаблоны Factory и Abstract Factory - хорошее место для начала.

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

Кроме того, рассмотрите некоторые из этих встроенных объектов в PHP, чтобы увидеть, как они работают, и получите больше идей:

0 голосов
/ 28 января 2009

Используя классы (например, пакеты PEAR, упомянутые выше, другие), вы можете использовать код, который уже был написан и протестирован, для выполнения общих задач.

Помогает вам не изобретать велосипед тоже.

0 голосов
/ 28 января 2009

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

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