Мне, С++ программисту, что-то трудно понять как правильнее писать программы на php.
Допустим, есть сайт, например форум или что-то типа того. Пользователь может залогиниться (или войти автоматически через куки). Если пользователь не залогинился, то нужно вывести форму с вводом логина и пароля, иначе — контент сайта.
Вопрос в следующем: я могу сделать это через один файл index.php, введя в него переменную — "состояние" и в зависимости от нее вызывая функции реализации интерфейса из других файлов. А можно каждый подвид интерфейса реализовать на своем файле *.php.
Нужно обойти ситуацию, при которой пользователь напрямую обращается к странице, а база данных не открыта.
Ну и т.д., ситуаций много
КАК правильнее??? Какова вообще идеология разработки на php, с учетом того что в одну и ту же страницу можно придти с разными аргументами, а у программы потенциально несколько точек входа (каждый php файл в котором есть код вне функций)
> КАК правильнее??? Какова вообще идеология разработки на php, с учетом того что в одну и ту же страницу можно придти с разными аргументами, а у программы потенциально несколько точек входа (каждый php файл в котором есть код вне функций)
А зачем приходить на одну и ту же страницу с разными парамерами?
Вообще в веб-е рулит MVC (model-view-controller). Можно сомтреть в сторону фреймворков Zend Framework, CodeIgniter, CakepHP, Prado, чтобы посмотреть, что да как там реализовано
Здравствуйте, Mamut, Вы писали:
>> КАК правильнее??? Какова вообще идеология разработки на php, с учетом того что в одну и ту же страницу можно придти с разными аргументами, а у программы потенциально несколько точек входа (каждый php файл в котором есть код вне функций)
M>А зачем приходить на одну и ту же страницу с разными парамерами?
M>Вообще в веб-е рулит MVC (model-view-controller). Можно сомтреть в сторону фреймворков Zend Framework, CodeIgniter, CakepHP, Prado, чтобы посмотреть, что да как там реализовано
+1, но добавлю ещё Kohana и Yii.
Re[3]: Дизайн и архитектура программ на php
От:
Аноним
Дата:
18.07.09 20:00
Оценка:
Здравствуйте, skeptik_, Вы писали:
_>Здравствуйте, Mamut, Вы писали:
>>> КАК правильнее??? Какова вообще идеология разработки на php, с учетом того что в одну и ту же страницу можно придти с разными аргументами, а у программы потенциально несколько точек входа (каждый php файл в котором есть код вне функций)
M>>А зачем приходить на одну и ту же страницу с разными парамерами?
M>>Вообще в веб-е рулит MVC (model-view-controller). Можно сомтреть в сторону фреймворков Zend Framework, CodeIgniter, CakepHP, Prado, чтобы посмотреть, что да как там реализовано _>+1, но добавлю ещё Kohana и Yii.
Спасибо!
Возможно, не стоит заниматься велосипедостроением, а просто использовать один из этих фреймворков? Тогда какой брать, чем они отличаются друг от друга?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, skeptik_, Вы писали:
_>>Здравствуйте, Mamut, Вы писали:
>>>> КАК правильнее??? Какова вообще идеология разработки на php, с учетом того что в одну и ту же страницу можно придти с разными аргументами, а у программы потенциально несколько точек входа (каждый php файл в котором есть код вне функций)
M>>>А зачем приходить на одну и ту же страницу с разными парамерами?
M>>>Вообще в веб-е рулит MVC (model-view-controller). Можно сомтреть в сторону фреймворков Zend Framework, CodeIgniter, CakepHP, Prado, чтобы посмотреть, что да как там реализовано _>>+1, но добавлю ещё Kohana и Yii.
А>Спасибо! А>Возможно, не стоит заниматься велосипедостроением, а просто использовать один из этих фреймворков? Тогда какой брать, чем они отличаются друг от друга?
Проще всего разобраться пожалуй с Kohana. Yii это сравнительно молодой, и самый быстрый из фреймворков, имеет ряд интересных решений. С Zend Framework имеет смысл познакомится для прочистки мозгов, ибо он обладает наиболее чистым и стройным дизайном. Zend Framework не представляет собой решения из коробки, а скорее набор компонент, из которых строится фреймворк. Для лучшего понимания как это делается хороша книга "Practical Web 2.0 Applications with PHP". К сожалению Zend Framework довольно таки медленный.
Остальные я рекомендовать не могу. CodeIgniter смотреть смысла мало, так как Kohana сделана на его основе, с учетом ошибок допущенных в CodeIgniter, и с использованием PHP 5. CakePHP довольно таки раздутый и медленный фреймворк, мне лично не нравится, но это дело вкуса. Почти тоже самое можно сказать о Symfony. С остальными я не знаком.
Возможно лучше всего начать с вышеупомянутой книги.
Здравствуйте, Аноним, Вы писали:
А>Мне, С++ программисту, что-то трудно понять как правильнее писать программы на php. А>Допустим, есть сайт, например форум или что-то типа того. Пользователь может залогиниться (или войти автоматически через куки). Если пользователь не залогинился, то нужно вывести форму с вводом логина и пароля, иначе — контент сайта.
в каждую страницу сайта добавляем следующий код (наследованием, копипейстом или как еще угодно):
1. проверяем наличие специальной переменной (напр UserID)
2. если переменная установлена — показываем контент.
3. если переменная не установлена — отправляем пользователя на страницу login.php?retUrl=страница_откуда_пришли.php
4. на странице login.php показываем формочку с именем/паролем и после того как пользователь прислал нам имя и пароль и они оказались верными — создаем session и в него пишем значение переменной UserID. Пользователя отправляем обратно на оригинальную страницу используя значение из переменной retUrl.
Здравствуйте, skeptik_, Вы писали:
_>Проще всего разобраться пожалуй с Kohana. Yii это сравнительно молодой, и самый быстрый из фреймворков, имеет ряд интересных решений. С Zend Framework имеет смысл познакомится для прочистки мозгов, ибо он обладает наиболее чистым и стройным дизайном.
А если php идёт с flex на front-end?
Получается 2 "разных" проекта, php и flex. Они не пересекаются кроме как через amfphp. То есть разделение на Model\Controller и View уже есть по определению. Стоит ли тут "фреймворкить"?