Помогите начать работу с OO PHP и MySQL - PullRequest
2 голосов
/ 24 августа 2010

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

Я хочу узнать о MVC с объектно-ориентированным PHP и MySQL.У меня есть некоторый опыт работы с Java и MVC, но я не имею ничего общего с веб-технологиями, например, HTML / CSS / JS и т. Д. Я не совсем понимаю, как динамически генерируемый HTML вписывается в классы и т. Д.

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

Cheers, Evan

Ответы [ 6 ]

2 голосов
/ 24 августа 2010

У вас много кода, и, несмотря на то, что его сложно изменить, он, вероятно, работает.Капитальный ремонт отодвинет вас на некоторое время, поэтому лучший подход - постепенный.Найдите ОДНУ вещь, которая будет серьезно полезна от использования объектов, и используйте объекты там.Рефакторинг, так как вы можете запускать тесты.Вы можете работать с обычным потоком событий, и все работает хорошо.

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

Другими словами, если вы слушаете с правильными ушами, код скажет вам.

0 голосов
/ 26 августа 2010

Чтение Учебное пособие по MVC на PHP Чтобы понять, что такое MVC, затем начните использовать MVC Framework, например Zend, CakePHP, Symphony или CodeIgniter ...

0 голосов
/ 25 августа 2010

добро пожаловать в SO.

Я ни в коем случае не эксперт по PHP, вот моя мысль приходит мне в голову:

ОО-программирование на PHP действительно помогает, но не очень вероятно, что это спасение от устранения всех избыточностей или придания более аккуратного кода. Традиционный способ кодирования в PHP может дать хороший код. OO помогает инкапсулировать ваш код, чтобы скрыть реализацию и повторно использовать чужой код путем прямого составления и / или наследования.

Я бы сказал, что реальная проблема заключается в том, как отделить «статический» html от «динамического» PHP. Например, их не должно быть много:

echo "<h1>A title</h1";
echo "<p>blah blah blah...";

Даже при условной печати. ​​

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

Для ваших вопросов о популярных OO-фреймворках PHP, CakePHP - хороший вопрос, вдохновленный Ruby on Rails.

0 голосов
/ 24 августа 2010

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

Когда вы привыкнете к программированию классов и работе с объектами, настанет время перейти к чему-то большему, например, весь "движок" рефакторинга к ООП, используя mvc и другие вещи.

0 голосов
/ 24 августа 2010

Не совсем ответ, но слишком большой, чтобы быть комментарием.

На самом деле HTML не имеет ничего общего с классами, а JS и CSS не имеют ничего общего с PHP, MVC и ООП вообще.

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

Хотя JS и CSS - это совершенно отдельные файлы, обычно вызываемые browser непосредственно с сервера, избегая кода вашего приложения (если только он не генерируется динамически). Во всяком случае, вы не должны беспокоиться об этом.

Хотя все еще сложно и нетривиально связать иерархию классов с таким дискретным способом выполнения типичного приложения PHP. Однажды мудрец сказал однажды: «Если бы Windows приходилось перезагружать после каждого щелчка пользователя, это было написано полностью по-другому».

0 голосов
/ 24 августа 2010

Если вы просто хотите получить хороший онлайн-курс, возможно, вам стоит взглянуть на

http://www.lynda.com/home/DisplayCourse.aspx?lpk2=653&srchtrk=index%3A1%0Alinktypeid%3A2%0Aq%3APHP%20Object%20Oriented%0Apage%3A1%0As%3Arelevance%0Asa%3Atrue%0Aproducttypeid%3A2%0Acategory_facet%3APHP

Этот курс был действительно полезен для моего друга. Прогресс, который он зарегистрировал, когда закончил этот урок, был действительно велик. Он познакомит вас с основами построения CMS на PHP и объектно-ориентированным.

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