Guest User

Untitled

a guest
Aug 8th, 2021
603
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Оказывается, лимоны выведены искуственно. И кому только пришла в голову идея вывести кислый несъедобный фрукт? Пока кто-то выводит фрукты, мы изучаем язык PHP (а также JS/CSS/HTML/SQL) и учимся делать сайты. Зачем? Кто-то хочет открыть стартап, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.
  2.  
  3. ОП довольно занят, но постарается ответить на все вопросы. Также, ответы и решения задач можно поискать в архиве тредов phpclub.
  4.  
  5. Это тред и для начинающих. Слово "классы" у тебя ассоциируется только со школой, а в аттестате тройка по математике? Ты наш человек.
  6.  
  7. Предыдущий тред был тут: >>1998470 (OP) . Все старые треды есть в архиве: https://phpclub.tech/ (там есть поиск, можно искать решения и обсуждения задач).
  8.  
  9. С чего начать
  10.  
  11. Наши уроки по PHP собраны по адресу http://codedokode.github.io/phpbook (вас отредиректит на другой домен, не запоминайте его, он временный). Это учебник для изучающих с нуля. Там есть задачи, их нужно решать. Но если этот учебник тебе не нравится, можно читать любой другой. Или официальный мануал. Или все сразу.
  12.  
  13. Если не знаешь как решать, запости код и попроси подсказку или поищи задачу в архиве тредов.
  14.  
  15. Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование. У нас есть задачи для изучения этого:
  16.  
  17. - для начала прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
  18. - установи Апач + PHP (советы выше и ниже) и читай туториал http://php.net/manual/ru/tutorial.php
  19. - Учи HTML/CSS и SQL, PDO, хотя бы основы
  20. - Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
  21. - Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
  22. - Еще более сложная и долгая задача на Laravel/Symfony: https://gist.github.com/codedokode/8733007
  23. - После нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
  24. - Если ты все решил, переходи к Symfony или Laravel
  25. - Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.
  26.  
  27. Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:
  28.  
  29. https://github.com/codedokode/pasta/blob/master/soft/php-install.md
  30. https://github.com/codedokode/pasta/blob/master/soft/apache-install.md
  31.  
  32. Может тебе понадобится пользоваться командной строкой, вот гайд https://github.com/codedokode/pasta/blob/master/soft/cli.md
  33.  
  34. Параллельно стоит подучивать английский, на первых порах можно без него, но по мере развития придется все чаще сталкиваться с англоязычными статьями, так что лучше не откладывать. Читать можно news.ycombinator.com - это что-то вроде их хабра.
  35.  
  36. Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
  37.  
  38. - HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
  39. - JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
  40. - SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
  41. - Проверялка решений на JS: http://dkab.github.io/jasmine-tests/
  42. - MySQL: https://github.com/codedokode/pasta/blob/master/db/databases.md
  43.  
  44. Что почитать
  45.  
  46. - Мануал по PHP — http://www.php.net/manual/ru/langref.php
  47. - Сайт phptherightway (перевод на русский: http://getjump.me/ru-php-the-right-way/ )
  48. - По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
  49. - По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
  50. - JS: learn.javascript.ru
  51. - Про Git: https://git-scm.com/book/ru/v1
  52. - Новости IT на англ. https://news.ycombinator.com/
  53. - какой-то древний, устаревший, но большой и на русском справочник по веб-разработке, посоветованный аноном: https://starcat.dp.ua/doc/wdh/
  54.  
  55. Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492
  56.  
  57. У ОПа нет аккаунтов и групп вконтакте, в фейсбуке, в твиттере, все "пхп-треды" там поддельные.
  58.  
  59. Платиновые вопросы
  60.  
  61. - Почему PHP? Потому что вакансий море, и учить легко.
  62. - Сайт опять упал!!!!! — Не паникуй, а зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Clone or Download -> Download ZIP, распакуй на рабочий стол и получи личную копию сайта, не требующую интернетов.
  63. - Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery. У нас в треде были люди, которые практически с нуля учились и смогли найти работу (ищи в архиве по слову "устроился").
  64. - Что будут спрашивать на собеседовании если 0 опыта - гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
  65. - Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/
  66. - Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
  67. - Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
  68.  
  69. Код стоит писать аккуратно и оформлять, как принято. Потому, что другой человек, который будет смотреть твой код, вряд ли обрадуется, когда ему придется разбирать слипшиеся строчки, разбросанные в беспорядке скобки и написанные русскими словами названия переменных. Особенно плохо будет если это, например, код тестового задания, которое ты сделал, чтобы устроиться на работу. Если он будет неряшливым, это будет большой минус.
  70.  
  71. Для этого достаточно вставить код на http://beta.phpformatter.com/ и нажать «format». Робот оформит все как надо. Если ты используешь IDE, то там есть горячая клавиша для этого. Список клавиш для IDE: https://gist.github.com/codedokode/8759492
  72.  
  73. Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть рекомендации PSR-1 и PSR-12. Вот как надо оформлять код:
  74.  
  75. - переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
  76. - Название функции начинается с глагола, в стиле «сделайЧтоТо»
  77. - не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт и найди название для переменной там
  78. - в именах классов используется CamelCase, первая буква большая, «_» может использоваться
  79. - мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
  80. - мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)
  81. - ставим тайп-хинты на аргументы функций, результат функций и поля классов
  82.  
  83. Вот ссылка на рекомендации PSR, где все это описано подробнее и даны примеры оформления:
  84.  
  85. PSR-1 (рус.): https://svyatoslav.biz/misc/psr_translation/#_PSR-1
  86. PSR-12 (англ.): https://www.php-fig.org/psr/psr-12/
RAW Paste Data