Должен ли кто-то, не имеющий опыта работы с PHP, использовать такие фреймворки, как CakePHP или Symfony? - PullRequest
16 голосов
/ 16 августа 2010

У меня есть простой сайт для разработки, и я хотел бы изучать PHP на ходу. Я хочу, чтобы сайт был безопасным, масштабируемым и простым в обслуживании. Должен ли я изучать фреймворк и PHP одновременно? Если я построю фреймворк, в игре будет много незнакомого кода. Вы сказали бы, что это увеличивает риски безопасности?

Ответы [ 10 ]

20 голосов
/ 16 августа 2010

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

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

  1. URL запрашивается и направляется через центральный файл начальной загрузки index.php

  2. Имя URL используется для получения имени класса и имени метода (и метода действия). Это ваша основная точка входа, с которой вы начинаете писать PHP для обработки запроса

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

Выберите фреймворк, узнайте, как он работает, и затем напишите любой тип PHP, который вы хотите, в методе действия и в шаблоне представления.

Да, в игре будет много другого кода фреймворка PHP, но вам никогда не придется смотреть на него.

Да, фреймворк будет иметь множество функций и / или «предпочтительный» способ обработки вещей, но вам нужно использовать только те, которые вы сразу понимаете.

Когда вы начнете замечать шаблоны уродливого, скучного или небезопасного кода, снова взгляните на возможности платформы. Чаще всего после того, как вы «сделали это неправильно», вы получите представление о том, почему код фреймворка что-то сделал определенным образом, и вы будете рады передать ответственность (я бы сказал, что модели в стиле ActiveRecord против кода SQL). здесь большой)

Когда вы начнете использовать ориентированные на objet системы, которые предоставляет фреймворк, вы начнете интересоваться тем, как они делают определенные вещи, а затем можете начать изучать код ядра фреймворка.

4 голосов
/ 16 августа 2010

Абсолютно.Frameworks сделает весь стандартный код для вас, предоставляя вам более высокий уровень абстракции.Вам, вероятно, будет проще писать код, не имея дело с некоторыми специфическими особенностями PHP.

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

1 голос
/ 16 августа 2010

Я бы сказал, что это зависит от вашего предыдущего опыта.Это не столько сам PHP, но среда веб-сервера, в которой он живет, может отвлекать.Если вы уже знакомы с жизненным циклом HTTP-запросов и написали веб-приложения в том же стиле, что и с PHP, у вас не должно возникнуть больших проблем с использованием фреймворка.происходят из "состояния" или вообще без фона, хотя абстракции, которые предлагает фреймворк, могут стать проблемой.Вы должны, по крайней мере, знать, как обрабатывать сеансы, файлы cookie, заголовки, $_POST и т.п. в простом PHP, прежде чем детали будут абстрагироваться от вас фреймворком.Также см. мой предыдущий ответ моего.

1 голос
/ 16 августа 2010

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

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

Хотя я фанат фреймворков, я согласен с некоторыми другими комментариями выше. Начинать с фреймворка может быть довольно непонятно, особенно если вы не знакомы с теорией объектно-ориентированного программирования (ООП) Model View Controller (MVC).

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

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

Только мои 2 цента как парня, который успешно выпустил пару корпоративных приложений - без использования PHP-фреймворка.

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

Начало работы с фреймворком на PHP также зависит от того, есть ли у вас опыт программирования, и если да, то какого рода.

Если вы запутались в некоторых других языках программирования, таких как java, c, одновременное изучение php-фреймворка при создании сайта может быть не таким уж сложным.

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

Также решающим фактором будет выбор PHP-фреймворка. Если вы используете PHP-фреймворки, такие как Codeigniter, Yii, возможно, даже CakePHP, которые имеют сравнительно меньшие кривые обучения, вы найдете свой путь хорошо подготовленным для вас в PHP. Хотя, если вы выберете какой-нибудь фреймворк, такой как Symfony, Zend, вы можете быть разочарованы тем, что слишком много времени занимаете выполнение простых вещей, что, в свою очередь, приводит к взрыву вашего проекта.

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

Надеюсь, это поможет в принятии решения.

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

Я бы посоветовал вам начать с PHP turorial на w3schools.com.Это коротко и ясно.Вы можете выучить все необходимые основы за один-два часа.Для того, чтобы понять любую структуру, вам это понадобится.Затем изучите главу first и second из кулинарной книги CakePHP и создайте свои первые приложения CakePHP, используя руководства .В остальном я согласен с Аланом Штормом.

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

По моему мнению, нет ничего плохого в изучении фреймворка одновременно с изучением языка. Уже есть немало ситуаций, когда это необходимо по необходимости. Например, большинство людей, изучающих Objective-C, одновременно изучают фреймворки Cocoa, большинство программистов на C # изучают .Net вместе с ним, даже JDK следует считать фреймворком, который вы изучаете вместе с языком Java. И что бы это ни стоило, я изучил среду Symfony с очень небольшим опытом PHP.

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

Я видел, как несколько человек (с большим опытом работы в ООП) одновременно изучали PHP и symfony без затруднений.

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

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

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

...