Я хотел бы быть программистом PHP / MySQL
Какие технологии я должен знать?
Нравиться:
Скажите, пожалуйста, минимальные требования, которые я должен знать, и укажите, что вам больше всего нравится в предыдущем списке?
Спасибо






Прежде всего, PHP сам по себе является системой шаблонов.
А что насчет Smarty? Я сказал, что это система шаблонов нет? Нет. Я просто указал, что PHP сам по себе является системой шаблонов. Вы можете изменять меня сколько угодно, но я работал в Yahoo! с Расмусом Лердорфом, изобретателем PHP, и я просто повторяю его позицию, и кто должен знать лучше
PHP - это система шаблонов, но она абсолютно ужасна, а ее синтаксис упрощает создание XSS-уязвимых тегов, чем не создает. Сравните с PHPTAL, который откажется генерировать плохо сформированный документ и не разрешит XSS, если вы явно не попросите об этом.
Не уверен, что это знает должен, но я согласен с Джорджем, не могу понять, почему пипы не работают!
Вы должны знать, как эффективно использовать хотя бы один отладчик / IDE. Удивительно, чему вы можете научиться из своего кода, пройдя его и наблюдая за его выполнением. Это значительно упрощает отслеживание ошибок и улучшает качество вашего кода. Я считаю, что вы никогда не должны передавать код в проект, выполнение которого вы еще не видели.
Используйте отличную среду IDE (например, Eclipse), которая позволяет вам отлаживать и выполнять некоторую доработку кода. Это сэкономит вам время.
У PHP много программистов, и он очень популярен = многое уже сделано для вас, прежде чем писать код, поиск в Google - всегда хорошая идея.
Вам следует использовать часть Framework, если вы начинаете с нуля. Это ответит на все ваши вопросы об AJax, механизмах шаблонов ... потому что большинство из них идут с этими пакетами. Вот пост о том, как начать выбирать фреймворк: ТАКИМ ОБРАЗОМ, 1, SO2, Вот список PHP Framework.
Вы можете разрабатывать PHP в Windows, Linux или Mac.
Вам необходимо выучить следующее (я бы предложил именно в таком порядке):
Хотя это не технология, я думаю, очень важно, чтобы вы понимали, что при использовании PHP вы полностью должны писать хороший код. PHP способен на это, но не поощряет это. Вы несете полную ответственность за написание кода, который хорошо спроектирован и, если хотите, следует принципам объектно-ориентированного программирования. Язык вам не поможет.
Согласен, и по этой причине я бы дважды подумал о PHP как о первом языке программирования - язык с лучшими «обучающими колесами» может быть более подходящим.
Я бы сказал, что самое важное - это узнать, как работает весь процесс создания страницы с помощью PHP - запросы поступают от клиента (веб-браузера), попадают на веб-сервер, передаются на PHP, который затем генерирует ответ. это отправлено обратно. Твердое понимание этого поможет вам
Как только вы это сделаете, вам будет вполне комфортно писать любое приложение. Но если у вас это не получится, вы начнете микшировать вещи, как я видел до этого многие новички.
Согласен, но это больше вопрос того, как работает Интернет - все это не относится к PHP.
Верно, но учитывая, что PHP нацелен на веб-разработку, это хорошее место для начала. И эти проблемы не возникли бы, если бы в прошлом вы работали только на стороне клиента (например, html, css и js). Понимание того, что конкретно делает PHP, необходимо для его использования.
Во-первых, нет должен знать об изучении PHP и MySQL ... Вы входите в него, ничего не зная, и вы выйдете из него, зная кучу всего. Если бы это было необходимо, то никто не смог бы заняться разработкой PHP и MySQL. Я лично думаю, что у вас есть небольшое преимущество, если вы не знаете об этом всего. Это даст вам свежий взгляд на вещи и нестандартное мышление :)
Что касается объектно-ориентированного материала в этом потоке, это правда. Но, как говорили другие, программист (вы) должен решать, как писать свой код. Вы можете использовать объектно-ориентированные методы, создать спагетти-код, или просто использовать набор функций, или что-то еще. В любом случае, как уже говорили все, решать вам :)
Канал IRC:
На самом деле это не нужно, но я считаю это полезным ... Увидимся здесь :)
irc.freenode.net #php
Руководство по эксплуатации:
Руководство - ваш друг и, вероятно, единственное, что вы знаете должен, прежде чем погрузиться в него.
http://dev.mysql.com/doc/refman/5.0/en/apis-php.html
Фреймворки:
Убедитесь, что это фреймворк MVC :)
IDE:
Все, что вам больше подходит :)
http://www.zend.com/en/products/studio/
https://www.jetbrains.com/phpstorm/
Движки шаблонов:
PHP - хороший шаблонизатор
Фреймворки контроллеров представления модели помогают в этом
Аякс:
http://developer.yahoo.com/yui/
http://code.google.com/webtoolkit/
CSS:
http://www.yaml.de/en/home.html
http://code.google.com/p/blueprintcss/
http://developer.yahoo.com/yui/reset/
Определенно не исчерпывающий список, и все постоянно меняется ... Но это начало :)
Веселиться!
Chrelad
Нет переполнения стека?
phpDesigner - отличная IDE, лучше, чем многие из перечисленных вами
Nusphere IDE тоже хорош. Не бесплатно, но у него есть несколько хороших функций.
И я бы оспорил необходимость того, чтобы фреймворк был «MVC».
По крайней мере, не упускайте из виду Агави! +1, если добавишь.
Объектно-ориентированное программирование и XML :)
Безопасность.
Как сказал Лукас Оман - вы должны писать код на 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 может помочь.
Мне тоже нравится PHP как платформа. Он есть практически на каждом сервере в любом месте, и вы просто помещаете несколько файлов в каталог, и все готово. Это круто. К сожалению, языковой дизайн подводит, но я думаю, что нет ничего идеального.
Я считаю, что охарактеризовать PHP как «сломанный и плохо спроектированный» - это немного жестко. Правда, есть проблемы, но не только из-за плохих решений, так сказать «на стадии планирования» - большинство из них - просто исторические наслоения.
PHP был «сломан и плохо спроектирован», но, начиная с версии 5.0, это прекрасный язык, хотя и для корпоративных приложений.
и PHP 6 настроен на продолжение той хорошей работы, которую начал PHP 5! Слава богу, нам больше не нужно иметь дело с причудами PHP 4! :)
Безопасность - важная тема, которую должен изучить каждый веб-программист, прежде чем ему будет разрешено публиковать код, который будет доступен публично в Интернете.
Примеры проблем безопасности:
При написании PHP-приложений вам следует знать и помнить о других вопросах безопасности. Веб-сайт http://www.owasp.org содержит множество полезных Информация, которые могут помочь.
Лично я нашел книгу "Создайте свой собственный веб-сайт, управляемый базой данных, используя PHP и MySQL" чрезвычайно полезной.
Помимо этого, единственное, к чему мне было труднее всего привыкнуть с PHP, - это то, насколько он расслаблен по сравнению с любым другим языком, который я когда-либо использовал. Под этим я подразумеваю отсутствие типов, гибкость в синтаксисе и пунктуации. Лично я считаю, что это хорошо, но я также знаю, что это, вероятно, способствует довольно плохому поведению.
Вот еще один совет, который у меня есть: попробуйте использовать что-то вроде принципа DRY - то есть вы обнаружите, что снова и снова пишете одни и те же маленькие (или большие) кусочки кода - превратите их в функции как можно раньше. в процессе кодирования, и потом жизнь станет намного проще.
Язык PHP
Зайдите на PHP.net и прочтите всю документацию. Когда вы закончите, вы не будете знать все, что вам нужно знать о php, но вы будете знать, где искать.
Я не знаю, почему кто-то проголосовал против вас. Именно так я и узнал.
Да, я думаю, некоторым людям просто нравится голосовать против. Я склонен сбрасывать со счетов людей, которые голосуют против без комментариев.
PHP был моим первым языком, который я выучил на стороне, работая младшим в офисе на моей первой работе более 10 лет назад. Вот некоторые моменты из моего опыта:
Все хорошие ответы, но чего-то важного не хватает: если вы хотите серьезно заняться PHP, вы должны знать, что есть много программистов PHP, которые ленивы, некомпетентны, невежественны, заблуждаются и, к сожалению, выпускают свой код. публике. История PHP означает, что он поддерживает некоторые сомнительные функции (не только такие вещи, как register_globals, но и более мелкие вещи, такие как автоматическая инициализация), и люди все еще их используют. Вы не хотите.
Я бы сказал, что базовым будет HTML. ;)
Будьте осторожны с фрагментами кода, которые вы найдете в Интернете. Часто они содержат sql в html, что является плохой практикой, а также уязвимости безопасности, такие как внедрение sql. Я видел несколько таких, которые используют подготовленные операторы, что хорошо для безопасности.
Игнорируйте функции mysql_ *. Они не только не предоставляют простого метода написания безопасного кода, но и делают все возможное, чтобы сделать его болезненно и утомительно, если вы попытаетесь. Вместо этого используйте mysqli или PDO (и теперь у вас нет оправдания - PHP 4 закончился несколько месяцев назад).
Или используйте PEAR MDB2 для переносимости между серверами базы данных.
Получение настройки веб-сервера
Чтобы запустить 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.
также: stackoverflow.com/questions/411954/…