SHARE
TWEET

PHP THREAD

a guest Jul 28th, 2017 1,350 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Добро пожаловать в наш уютный тред. Тут мы изучаем веб-разработку на языке PHP (а также JS/CSS/HTML/SQL), решаем задачки и делаем простые сайты! Зачем? Кто-то хочет сделать себе блог, кто-то приобрести новую профессию, кому-то просто нечего делать.
  2.  
  3. Пожалуйста, пишите один большой пост вместо нескольких маленьких и не флудите не по теме.
  4.  
  5. Это тред для начинающих. Не написал за свою жизнь ни одной программы и имеешь тройку по математике? Ты наш человек.
  6.  
  7. Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Visual Studio Code, Netbeans PHP или PhpStorm (с ним будет удобнее).
  8.  
  9. Предыдущие треды ищутся в гугле по словам "клуб php" или в архиваче. Еще есть такой архив тредов: phpclub.rf.gd
  10.  
  11. Мейлач лежит? Есть запасной тред: доброчан-орг/s/res/23225.xhtml#i46467
  12.  
  13. Что самое главное для программиста? Умение аккуратно оформлять код (читай второй пост, прежде чем писать код).
  14.  
  15. Правила: ведем себя воспитанно, помогаем новичкам, читаем учебник, решаем задачки, постим ссылки на решения, ОП их проверяет и дает советы и замечания. ОП заходит редко, где-то раз в 2-3 дня, у него мало времени, не жди его, решай задачки дальше. ОП отвечает на все вопросы по его задачкам и учебнику, а вот насчет каких-то других вещей - только если останется время. Но в треде немало анонимных экспертов разного уровня, так что вряд ли вопрос останется без ответа.
  16.  
  17. У нас есть уроки по основам PHP, они собраны и выложены по адресу http://archive-ipq-co.narod.ru/ Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то надо начать с него. Он простой и понятный (по крайней мере в начале). Там есть задачи, их надо решать обязательно (чтобы стать программистом, надо писать код — иначе никак). Пости ссылки на решения в тред, мы их проверим, напишем замечания и дадим советы по улучшению.
  18.  
  19. Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.
  20.  
  21. Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP, этого недостаточно. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование.
  22.  
  23. Надо переходить к более серьезным задачкам, которые научат тебя всему этому.
  24.  
  25. - для начала прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
  26. - установи Апач + PHP (советы выше и ниже) и читай туториал http://php.net/manual/ru/tutorial.php
  27. - Учи HTML/CSS и SQL, PDO, хотя бы основы
  28. - Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
  29. - Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
  30. - Еще более сложная и долгая задача на Yii/Symfony: https://gist.github.com/codedokode/8733007
  31. - После нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
  32. - Если ты все решил, переходи к Symfony 3/Doctrine 2
  33. - Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.
  34.  
  35. Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:
  36.  
  37. https://github.com/codedokode/pasta/blob/master/soft/php-install.md
  38. https://github.com/codedokode/pasta/blob/master/soft/apache-install.md
  39.  
  40. Может тебе понадобится пользоваться командной строкой, вот гайд https://github.com/codedokode/pasta/blob/master/soft/cli.md
  41.  
  42. Решения задач лучше показать мне, особенно на ООП,так как сам ты вряд ли увидишь все ошибки. Пости свой код на гитхаб и вкидывай ссылку в тред по мере решения. Я прокомментирую и укажу на ошибки.
  43.  
  44. Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
  45.  
  46. - HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
  47. - JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
  48. - SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
  49. - Проверялка решений на JS: http://dkab.github.io/jasmine-tests/
  50. - MySQL: https://github.com/codedokode/pasta/blob/master/db/databases.md
  51.  
  52. Что почитать
  53.  
  54. - Мануал по PHP — http://www.php.net/manual/ru/langref.php
  55. - Сайт phptherightway (перевод на русский: http://getjump.me/ru-php-the-right-way/ )
  56. - По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
  57. - По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
  58. - JS: learn.javascript.ru
  59. - Про Git: https://git-scm.com/book/ru/v1
  60.  
  61. Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492
  62.  
  63. У ОПа нет аккаунтов и групп вконтакте, в фейсбуке, в твиттере, все "пхп-треды" там поддельные.
  64.  
  65. Платиновые вопросы
  66.  
  67. - Почему PHP? Потому что фейсбук и википедия на нем написаны, и вакансий море, и учить легко.
  68. - Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.ru/6bfCY9lfl и получи личную немного устаревшую оффлайновую копию сайта (можно читать хоть на андроиде без интернета)
  69. - Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу.
  70. - Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
  71. - Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/.
  72. - Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
  73. - Посоветуйте редактор кода - Sublime Text 3, Notepad++, PhpStorm
  74. - Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
  75. - Что самое главное для программиста? Умение аккуратно оформлять код.
  76. - ОП, сделай за меня мою работу или домашнее задание? — Это конечно, хорошая идея, но нет.
  77. - Подскажи сайты для поиска работы, я не умею гуглить? — hh.ru, geekjob.ru, moikrug.ru (склеен с brainstorage.me), fl.ru, upwork.com (бывший одеск). Имей в виду, что кроме фриланса есть еще постоянная удаленная работа (remote job) когда тебе не надо тратить время на поиск заказов и переговоры с неадекватными заказчиками.
  78.  
  79. Код нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть.
  80.  
  81. Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.
  82.  
  83. Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492
  84.  
  85. Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть стандарты PSR-1 и 2. Вот как надо оформлять код:
  86.  
  87. - переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
  88. - Название функции начинается с глагола, в стиле «сделайЧтоТо»
  89. - не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт или slovari.yandex.ru и найди название для переменной там
  90. - в именах классов используется CamelCase, первая буква большая, «_» может использоваться
  91. - мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
  92. - мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)
  93.  
  94. Вот ссылка на стандарты, где все это описано подробнее и даны примеры оформления:
  95.  
  96. PSR-1: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
  97. PSR-2: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-2-coding-style-guide.md
  98.  
  99. ------------------
  100.  
  101. Итак, ты зашел в тред и решил помочь какому-то анону, дав ему совет или подсказку. Спасибо! Но прочти сначала эти напоминания, чтобы твоя помощь действительно была полезной.
  102.  
  103. Давай удочку, а не рыбу
  104.  
  105. Лучше не давать готовое решение проблемы, а рассказать как его искать. Может дать ключевые слова для гугла или ссылку. Но помогай, а не пытайся показать превосходство. Если даешь ссылки на нерусскоязычные статьи, упомяни об этом.
  106.  
  107. Будь доброжелателен
  108.  
  109. Не годится: «Ты мануал хоть раз в жизни открывал, обезьяна?»
  110. Не годится: «В гугле забанили?»
  111. Не годится: «Твой код плохой»
  112. Хорошо: «Вот, как можно улучшить этот код: ...»
  113. Хорошо: «Ты неправильно используешь функцию abc(). Вот ее описание: ссылка, и как видишь ей надо передать строку, а не массив»
  114.  
  115. Не придирайся к знанию английского или русского языка.
  116.  
  117. Объясняй
  118.  
  119. Не очень хорошо: «сделай как в этом коде»
  120. Хорошо: «если ты вставляешь текст от пользователя в SQL запрос, то получается SQl-инъекция, которая позволяет взломать твой сервер (ссылки). Чтобы этого избежать, надо вставлять данные с помощью плейсхолдеров (ссылки)»
  121. Хорошо: «Помни, что код пишется для людей. Если писать такие большие функции, то в них становится трудно разобраться...»
  122.  
  123. Не проповедуй
  124.  
  125. Мы учим использованию самых распространненных подходов, стандартов, библиотеки фреймворков. Если ты не любишь ООП, пробелы в коде, jQuery, сам PHP, то рассказать об этом стоит в каком-нибудь другом треде.
  126.  
  127. Не придирайся к знанию английского языка, анон пишет как умеет.
  128.  
  129. Ах да. Если тебе кажется, что что-то в учебнике или задачах можно сделать лучше — пиши, обратная связь всегда очень полезна.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top