Что должен знать каждый программист PHP?

Я хотел бы быть программистом PHP / MySQL

Какие технологии я должен знать?

Нравиться:

  1. Каркасы
  2. Иды
  3. Шаблоны движков
  4. Фреймворки Ajax и CSS

Скажите, пожалуйста, минимальные требования, которые я должен знать, и укажите, что вам больше всего нравится в предыдущем списке?

Спасибо

также: stackoverflow.com/questions/411954/…

aleemb 15.05.2009 19:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
26
1
11 879
20

Ответы 20

Прежде всего, PHP сам по себе является системой шаблонов.

А что насчет Smarty? Я сказал, что это система шаблонов нет? Нет. Я просто указал, что PHP сам по себе является системой шаблонов. Вы можете изменять меня сколько угодно, но я работал в Yahoo! с Расмусом Лердорфом, изобретателем PHP, и я просто повторяю его позицию, и кто должен знать лучше

Dexygen 20.11.2008 22:45

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

Kornel 20.11.2008 23:06

Не уверен, что это знает должен, но я согласен с Джорджем, не могу понять, почему пипы не работают!

da5id 20.11.2008 23:07

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

Используйте отличную среду IDE (например, Eclipse), которая позволяет вам отлаживать и выполнять некоторую доработку кода. Это сэкономит вам время.

У PHP много программистов, и он очень популярен = многое уже сделано для вас, прежде чем писать код, поиск в Google - всегда хорошая идея.

Вам следует использовать часть Framework, если вы начинаете с нуля. Это ответит на все ваши вопросы об AJax, механизмах шаблонов ... потому что большинство из них идут с этими пакетами. Вот пост о том, как начать выбирать фреймворк: ТАКИМ ОБРАЗОМ, 1, SO2, Вот список PHP Framework.

Вы можете разрабатывать PHP в Windows, Linux или Mac.

Вам необходимо выучить следующее (я бы предложил именно в таком порядке):

  1. Базовый объектно-ориентированные принципы (например, наследование, полиморфизм и инкапсуляция)
  2. Сам язык PHP. В частности, PHP 5.
  3. Принципы проектирования баз данных, такие как таблицы, ключи, отношения, нормализация и т. д.
  4. SQL - структурированный (или стандартный, никогда не помню, какой) язык запросов. В частности, изучите основы запросов на выбор, вставку, обновление и удаление.
  5. Хорошие принципы дизайна и методы кодирования (например, вы можете найти сообщения здесь, на StackOverflow), такие как разделение презентации и бизнес-логики.
  6. A Framework, Any Framework - это поможет вам познакомиться с более продвинутыми концепциями объектно-ориентированных шаблонов проектирования и позволит вам следовать руководствам, которые будут поощрять хорошие методы проектирования и кодирования.
  7. Шаблоны объектно-ориентированного проектирования, такие как MVC, модели абстракции баз данных и т. д.
  8. Расширенный SQL и другие элементы базы данных, такие как триггеры, хранимые процедуры и другие функции.

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

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

Sherm Pendley 20.11.2008 22:38

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

  • почему вы не можете отправлять заголовки после начала вывода
  • как работают сеансы и файлы cookie
  • как каждая страница должна быть построена без сохранения состояния (т.е. доставлять все, что запрашивает запрос, не помнить, что произошло в прошлый раз, или угадывать, что делает пользователь)
  • Разница между HTML, PHP, JavaScript и CSS и, что более важно, то, для чего каждый из них используется в первую очередь и за что несет ответственность каждый.

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

Согласен, но это больше вопрос того, как работает Интернет - все это не относится к PHP.

Sherm Pendley 20.11.2008 22:39

Верно, но учитывая, что PHP нацелен на веб-разработку, это хорошее место для начала. И эти проблемы не возникли бы, если бы в прошлом вы работали только на стороне клиента (например, html, css и js). Понимание того, что конкретно делает PHP, необходимо для его использования.

JamShady 20.11.2008 22:48

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

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

Канал IRC:

На самом деле это не нужно, но я считаю это полезным ... Увидимся здесь :)

irc.freenode.net #php

Руководство по эксплуатации:

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

http://www.php.net/manual/en/

http://dev.mysql.com/doc/refman/5.0/en/apis-php.html

Фреймворки:

Убедитесь, что это фреймворк MVC :)

http://www.cakephp.org/

http://www.phpmvc.net/

http://www.codeigniter.com/

http://www.symfony.com/

http://www.laravel.com

http://www.yiiframework.com/

IDE:

Все, что вам больше подходит :)

http://www.eclipse.org/

http://www.vim.org/

http://www.zend.com/en/products/studio/

http://php.netbeans.org/

https://www.jetbrains.com/phpstorm/

Движки шаблонов:

PHP - хороший шаблонизатор

Фреймворки контроллеров представления модели помогают в этом

twig.sensiolabs.org

http://www.smarty.net/

Аякс:

http://jquery.com/

http://www.mootools.net/

http://developer.yahoo.com/yui/

http://www.prototypejs.org/

http://www.extjs.com/

http://code.google.com/webtoolkit/

https://angularjs.org/

CSS:

http://www.yaml.de/en/home.html

http://code.google.com/p/blueprintcss/

http://developer.yahoo.com/yui/reset/

Определенно не исчерпывающий список, и все постоянно меняется ... Но это начало :)

Веселиться!

Chrelad

Нет переполнения стека?

Matthew Rapati 21.11.2008 02:43

phpDesigner - отличная IDE, лучше, чем многие из перечисленных вами

TravisO 10.12.2008 23:46

Nusphere IDE тоже хорош. Не бесплатно, но у него есть несколько хороших функций.

AntonioCS 07.01.2009 02:15

И я бы оспорил необходимость того, чтобы фреймворк был «MVC».

staticsan 30.03.2009 02:11

По крайней мере, не упускайте из виду Агави! +1, если добавишь.

erisco 23.04.2010 00:54

Объектно-ориентированное программирование и XML :)

Robi 12.12.2012 01:29

Безопасность.

Как сказал Лукас Оман - вы должны писать код на PHP; и это не балует вас. Если вы не понимаете, почему вам нужно подтвердить выход, или почему вы не можете просто проверить в javascript, или почему register_globals плохой, ваше приложение будет уязвимо в той или иной форме.

Что каждое значение везде должно быть правильно закодировано. echo $some_variable_that_seems_innocent - зло девять раз из десяти.

Используйте htmlspecialchars() в HTML / XML, подготовленные операторы или хотя бы addslashes() при построении SQL-запросов, json_encode() при вставке значений в сценарии, rawurlencode() при добавлении компонентов URL, escapeshellargs() при создании команд оболочки и т. д.

Если вы вставляете текст в URL-адрес, который является частью сценария в документе XHTML, вам нужно будет кодировать данные три раза.

What should every PHP programmer know ?

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

Почему? PHP сломан и полон плохого дизайна и недостатков. Вы можете написать отличный код на PHP, но вы никогда не сможете обнаружить плохой дизайн и ошибки самого PHP, если не знаете ничего лучше.

Я бы предложил Python, Ruby или C#

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

На самом деле, мне нравится PHP, но вы правы. Понимание того, как PHP работает в объектно-ориентированной среде, MVC-фреймворке, таком как Zend Framework, намного проще, если у вас есть некоторый опыт работы с любым из этих других языков. Даже знание Java может помочь.

rg88 21.11.2008 03:09

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

Orion Edwards 23.11.2008 22:53

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

staticsan 30.03.2009 02:10

PHP был «сломан и плохо спроектирован», но, начиная с версии 5.0, это прекрасный язык, хотя и для корпоративных приложений.

opHASnoNAME 28.10.2009 15:30

и PHP 6 настроен на продолжение той хорошей работы, которую начал PHP 5! Слава богу, нам больше не нужно иметь дело с причудами PHP 4! :)

studioromeo 22.04.2010 15:12

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

Примеры проблем безопасности:

При написании PHP-приложений вам следует знать и помнить о других вопросах безопасности. Веб-сайт http://www.owasp.org содержит множество полезных Информация, которые могут помочь.

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

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

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

Язык PHP

Зайдите на PHP.net и прочтите всю документацию. Когда вы закончите, вы не будете знать все, что вам нужно знать о php, но вы будете знать, где искать.

Я не знаю, почему кто-то проголосовал против вас. Именно так я и узнал.

Max 02.01.2009 15:18

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

Eli 03.01.2009 03:01

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

  • Загрузите руководство по PHP, распечатайте его и начните читать с первой страницы. Продолжайте, пока не доберетесь до конца. Просмотрите биты, которые вам, вероятно, не понадобятся (например, при использовании KADM5 или Hyperwave), но всегда читайте введение, чтобы знать, на что способен PHP (это избавит вас от попыток заново изобрести колесо). Документация PHP взрывает документацию почти всех языков, с которыми я работал с тех пор, из воды.
  • Следующий шаг; настроить PHP. Вручную. Не используйте XAMPP или что-нибудь еще, сделай сам. Всегда полезно знать, как устроена ваша среда.
  • Не беспокойтесь об IDE в начале. Знакомство с языком означает близкое общение. IDE скрывают вещи в попытке помочь вам GetThingsDone, который отлично работает, когда вы знаете, что делаете, и знаете свою целевую среду, но когда вы только начинаете, они просто мешают и скрывают то, что важно.
  • Не беспокойтесь о фреймворках в начале тоже. Опять же, они здесь, чтобы помочь вам GetThingsDone, который работает только тогда, когда вы в первую очередь знаете, что делаете. Начните с основ, иначе вы будете изучать рамки, а не PHP.
  • PHP - это, по сути, продвинутый движок для создания шаблонов.. Не попадитесь в ловушку разрекламированных «движков шаблонов PHP». Они просто делают то, что уже делает PHP, удваивая объем работы и работая в два раза медленнее, чем PHP. Для начала используйте встроенный html / php. Опять же, это поможет вам понять, что такое PHP, как он работает и когда его использовать.
  • Как и в случае с AJAX и CSS ... они не имеют ничего общего с PHP, а связаны с выводом, который вы производите из PHP (и с вводом AJAX). Не загружайте тарелку слишком большим количеством еды сразу. Начните с простого PHP + HTML и сделайте свой CSS вручную. Затем, когда вы будете счастливы, добавьте немного JavaScript.
  • Лучшее, что вы можете сделать с языком Любые, - это изучать окружающую среду, с которым вы собираетесь работать, потому что программирование (относительно) одинаково для всех из них. У всех есть циклы, структуры данных, ввод / вывод и т. д., Но все они работают по-разному.
  • Не верьте шумихе. В данный момент я перехожу с PHP на Python, и я мог бы просто вскочить на повозку Django и перейти к GetThingsDone, но я знаю, что если бы столкнулся с проблемой, я бы не знал, с чего начать ее исправление. Так что я следую своему собственному совету и начинаю с самого начала; чтение руководства, настройка тестовой системы, анализ простых файлов, получение ввода / вывода, подключение к веб-серверу ... все это часть знакомства с моей новой средой.

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

Я бы сказал, что базовым будет HTML. ;)

Будьте осторожны с фрагментами кода, которые вы найдете в Интернете. Часто они содержат sql в html, что является плохой практикой, а также уязвимости безопасности, такие как внедрение sql. Я видел несколько таких, которые используют подготовленные операторы, что хорошо для безопасности.

Игнорируйте функции mysql_ *. Они не только не предоставляют простого метода написания безопасного кода, но и делают все возможное, чтобы сделать его болезненно и утомительно, если вы попытаетесь. Вместо этого используйте mysqli или PDO (и теперь у вас нет оправдания - PHP 4 закончился несколько месяцев назад).

Или используйте PEAR MDB2 для переносимости между серверами базы данных.

strager 28.12.2008 10:25

Получение настройки веб-сервера

Чтобы запустить PHP и MySQL локально на вашем компьютере, вам необходимо установить веб-сервер Apache с модулем php и сервер базы данных MySQL. т.е. веб-сервер LAMP (Linux Apache MySQL PHP).

Раньше я бы рекомендовал установить Ubuntu. В наши дни доступно несколько решений, которые предоставят вам веб-сервер для установки одним щелчком мыши без использования Linux.

Для Windows:
http://www.wampserver.com

Для OSX: http://www.mamp.info

После наличия веб-сервера LAMP используйте для начала учебные пособия w3schools.com.

Я использовал XAMPP (apachefriends.org/en/xampp.html) в Windows.

strager 28.12.2008 10:24
  1. Нет эксперта по фреймворкам Php. Как шаблоны, которые делают систему намного сложнее.
  2. Поймите требования бизнес-логики и подумайте о минусах / плюсах. Надеяться, что SA все продумает для вас, - не лучший программист.
  3. Нет ajax. Я имею дело с большими данными, рендеринг в один js-файл около 4000 тыс. Данных очень плох.
  4. Начать с блокнота или VI
  5. После изучения php от 1 до 2 лет попробуйте выучить другой язык, например C# или C++, чтобы улучшить свое приложение php.
  6. Php является зависимым языком, а не другим языком. Вы набираете, он работает. На другом языке вы вводите "Это компилируется, это зависает". 7. Что касается сложных приложений, для меня лучше всего подходит php, чем другой язык, потому что вы думаете, что вы пишете, что он работает.

Другие вопросы по теме