Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

  • URL-адрес запрашивается и маршрутизируется через центральный файл index.php bootstrap

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

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

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

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

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

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

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

Ответ 2

Совершенно верно. Frameworks сделает для вас весь шаблонный код, предоставляя вам более высокий уровень абстракции. Скорее всего, вам будет легче программировать, не имея дело с некоторыми особенностями PHP.

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

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

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

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

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

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

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

Ответ 10

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

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

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

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