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

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

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

Подобно:

  1. Каркасы
  2. Иды
  3. Шаблоны
  4. Ajax и CSS Frameworks

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

благодаря

Во-первых, нет необходимости знать об изучении 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/

Ajax:

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

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

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

  • Инъекционные дефекты
  • Ошибки межсайтового скриптинга
  • Подделка запросов на межсайтовый запрос

Есть больше проблем с безопасностью, которые вы должны знать и иметь в виду при написании приложений PHP. На веб-сайте http://www.owasp.org содержится много полезной информации .

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

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

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

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

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

Я бы предложил python, ruby ​​или C #

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

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

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

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

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

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

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

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

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

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

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

То, что каждое значение везде должно быть закодировано надлежащим образом. echo $some_variable_that_seems_innocent является злом девять раз из десяти.

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

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

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

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

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

Вы должны использовать некоторые из Framework, если начинаете с нуля. Это ответит на все ваши вопросы об AJax, шаблонах … потому что большинство из них поставляется с этими пакетами. Вот несколько сообщений о том, как начать выбирать структуру: SO 1 , SO2. Вот список PHP Framework.

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

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

Чтобы запускать 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 .

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

  1. Нет эксперта в области Php. Как шаблоны, которые делают систему сложнее, чем она.
  2. Понимайте требования бизнес-логики и думайте, что cons / pro.Hoping для SA, чтобы думать, что все для вас не является хорошим программистом.
  3. Нет ajax.I работает с большими данными, рендеринг в один файл js около 4000 к данных очень плохой.
  4. Начните с блокнота или VI
  5. После изучения php от 1 до 2 лет, попробуйте изучить другой язык, например, c # или c ++, чтобы улучшить ваше приложение php.
  6. Php является зависимым языком, а не другим языком. Вы печатаете его. Другой язык, вы печатаете. Это компиляция. Приложение 7.For сложность, php является лучшим для меня, а не другим языком, потому что вы думаете, вы пишете его работает.

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

Язык PHP

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

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

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

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

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