Разработка класса PHP. Правильный путь - PullRequest
5 голосов
/ 26 октября 2009

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

Я бы очень признателен за то, как некоторые из вас, ребята, могут разработать класс для обработки этих трех вещей. Единственное, что мне нужно для этого класса, это ссылка на базу данных. Какие другие члены я должен использовать, мне неясно. Опять же, я хотел бы получить представление о том, как это должно быть сделано.

Спасибо, John


ОК, так что если бы я сказал 3 метода, как это:

var $db;

function GetPosts() {
//posts
}

function GetComments() {
// blog comments
}

function GetLinks() {
// links for the blog
}

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

Кроме того, мне интересно, должен ли я иметь метод, который вызывает другие методы. Только один публичный метод, а затем сделайте все эти другие методы приватными. Открытый метод будет вызывать закрытые методы и возвращать их значения. Желательно ли это?

Ответы [ 3 ]

1 голос
/ 26 октября 2009

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

Тогда вы можете подумать о том, как эти объекты будут взаимодействовать друг с другом (например, объект post может содержать массив объектов комментариев) и как они будут обрабатывать базовый CRUD (создавать, читать (получать), обновлять, удалять). ) операции.

0 голосов
/ 26 октября 2009

Я не знаю деталей задачи, которую вы хотите достичь, но подумайте об одном фабричном классе Blog, который, например, имеет метод GetPostManager (). PostManager может создавать, редактировать, обновлять сообщения, а также выбирать их. Итак, $ Blog-> GetPostManager () -> GetPosts ($ datefrom, $ dateto) вернет класс PostCollection, который реализует интерфейсы Countable и Iterator для просмотра сообщений. PostCollection - это массив, содержащий класс PostItem. Класс PostItem - это простой класс, который может сопоставлять с базой данных его свойства.

0 голосов
/ 26 октября 2009

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

Если вы хотите написать все вручную, хотя я бы посоветовал вам создать классы для обработки загрузки и сохранения (сохранения) ваших объектов (ссылки, публикации комментариев) или использовать среду сохранения (например, Doctrine ORM PHP ).

Проблема, однако, в том, что вы можете реализовать описанные вами функции различными способами; нет универсального ответа. Если вы введете какой-то код, вам будет легче дать конкретный совет.

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