2015-03-11 2 views
0

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

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

baseClass = basic page construction, sets database connection and environment values 
A dataTable class 
A class that generates javascript and jquery code 
A class for managing status radio buttons 
Classes and methods for updating the database 

Проблема заключается в том, как кодировать эти различные классы, чтобы они могли быть использованы на другие страницы и могут быть сохранены/переделаны просто. На данный момент классы называются как и при необходимости с использованием spl_autoload_register(), но я застрял в идеях о Singleton, Injection Dependancy, Factory.

Любые советы? (Я уверен, что его простой вопрос, но стучать головой о стену мешает мне)

Заранее спасибо

+2

Вам нужно узнать о [шаблонах проектирования] (http://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124) –

+0

Каждый класс должен быть осязаемым. У вас есть класс и классы dataTable для работы с базой данных.У вас должен быть класс базы данных, который имеет методы для создания данных и методы для обновления базы данных. В конце концов, ваш класс базы данных не привязан к определенной веб-странице. Его можно использовать на любой веб-странице. – kainaw

+0

Рассмотрите возможность перемещения проекта в рамки, такие как http://laravel.com/, http://cakephp.org/ или http://symfony.com/ Если ничего больше вы не узнаете о организации кода –

ответ

1

Вы можете попробовать Composer.

Это очень просто и просто (все же, я не понял, как настроить простое автозагрузку с их сайта). Чтобы настроить простую автозагрузку Я использовал этот учебник: http://jessesnet.com/development-notes/2014/php-composer-autoloading/

читать Также через PHPBridge это даст вам хорошее представление о том, как создать классы, а затем использовать их с Composer.

1

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

Например, у вас есть интерфейс для получения данных. На практике вы можете использовать класс mock (т. Е. Жестко закодированные данные в классе для тестирования других частей вашего приложения), вы можете получать данные из MySQL или из PostgreSQL или из любого другого источника. Все разные реализации одного и того же интерфейса. Интерфейсы должны иметь возможность общаться друг с другом, а не с самими реализациями, если только через их интерфейсы.

Я бы посоветовал вам создать этот код самостоятельно. Это даст вам знания, чтобы лучше понять рамки (в конечном счете).

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

0

Спасибо всем, Поскольку срок для этого проекта великодушный, я потрачу немного времени на дизайн шаблонов (я когда-либо сталкивался с структурированными шаблонами при редактировании существующих проектов) и смотрел на выполнение кода я сам, так как это старый проект, и начать с нуля - это не вариант (пока!)

Еще раз спасибо за отличный совет.

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