24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна.
Подробности случившегося. Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
Формируем нетоксичное коммьюнити! Держите себя в руках, воздержитесь от оскорблений.
Предыдущий тред:
PHP это интерпретируемый язык программирования с динамической типизацией.
https://en.wikipedia.org/wiki/PHP
На PHP работают 80% веб-сайтов и сервисов, в том числе и множество высоконагруженных проектов.
PHP широко применяется в финтехе, телекоме, вебе.
PHP широко поддерживает все основные базы данных, включая Postgres, Percona/MySQL, ElasticSearch и т.д.
Поддерживает управление памятью и прочее байтоёбство.
Плюсы: Куча работы, в том числе на начальном уровне.
Минусы: Много хейтеров.
Q&A:
Q: Скорость
A1: После версии 7 вообще не вопрос. Например, тут https://habr.com/ru/articles/718186/ -- результаты, близкие к C/C++.
A2: Все использую Opcache и Memcache для сохранения данных между процессами.
A3: PHP действительно быстрый, но жрёт память
Q: Ошибки приведения типов
A: declare(strict_types=1)
Q: Асинхронность
A: Все без каких-либо проблем используют брокеры сообщений, ветвление процессов или расширения для асинхронности. Подробнее: https://habr.com/ru/articles/451916/
Q: Где можно попробовать
A1: для новичков https://onlinephp.io || https://www.google.com/search?q=php+sandbox+online
A2: для изучения баз данных, SQL https://www.apachefriends.org/ru/index.html (а для редактирования устанавливаем IDE)
A3: для изучения реального применения и DevOps: любая виртуализация (Vagrant+Virtualbox, Windows WSL)
A4: для своего проекта в онлайн подойдёт практически любой виртуальный хостинг (я юзаю Sprinthost || для выбора: shared.menu )
Q: Чем редактировать PHP проекты
A1: IDE PHPStorm / IntellijIdea -- но они платные
A2: Как альтернатива -- Netbeans, Eclipse с плагинами PHP
Q: Актуальный набор навыков для успешного вката в нормальные конторы
A:
- ООП, SOLID/GRASP, MVC
- HTTP/REST (если хотите в веб)
- Безопасность на уровне OWASP TOP10
- SQL (Postgres, MySQL)
- PHPUnit, TDD
- Патерны программирования
- PSR
- PHP фреймворки, по примерному убыванию зарплат:
Symfony > ModX > Laravel > Yii > Slim > Битрикс > Wordpress
- ORM (Doctrine)
- Git
- Брокеры сообщениений (RabbitMQ, Kafka)
- Linux, shell
- Docker, виртуализация
- (для fullstack) Frontend: HTML/CSS/SCSS, Bootstrap, реактивные фреймворки
- Английский язык для чтения документации
Q: Работа
A: Например https://hh.ru/search/vacancy?text=PHP + Куча бирж
Q: ТГ-чатик для поддержки и обмена опытом по программированию
A: https://t.me/programming_ru_group
-- копия шапки про обучение --
Как учить, что читать:
Добро пожаловать в клуб востребованных и незаменимых людей.
Тут мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки, печем печенье и даже делаем простые сайты! Зачем? Кто-то хочет изменить мир, кто-то заработать на лапшу быстрого приготовления, кому-то просто нечего делать.
Да, в нашем треде отвечают почти на все вопросы, только бампайте каждые 5 дней. И не разводите флуд, если вам скучно, сходите погуляйте, например. Может вас побьет какой-нибудь хороший человек и вы перестанете флудить в нашем треде.
Это тред для начинающих. Не написал за свою жизнь ни одной программы и имеешь тройку по математике? Ты наш человек.
Остальные треды есть в архиве: https://phpclub.tech/ (там есть поиск, так что можно легко найти обсуждение какой-то задачи или ответы на свой старый пост) или ищутся в гугле по словам "клуб изучающих php" и в архиваче.
Мейлач лежит, модератор зверствует? Есть запасной тред на доброчане: /s/res/23225.xhtml#i46467
Форматируй свой код, если хочешь, чтобы его читали.
Правила: ведем себя воспитанно, помогаем новичкам, читаем учебники, решаем задачки, постим ссылки на решения, ОП их проверяет и дает советы и замечания. ОП заходит редко, где-то раз в 2-3 дня, у него мало времени, не жди его, решай задачки дальше. ОП отвечает на все вопросы по его задачкам и учебнику, а вот насчет каких-то других вещей - только если останется время. Но в треде немало анонимных экспертов разного уровня, так что вряд ли вопрос останется без ответа.
С чего начать
У нас есть свои уроки по основам PHP, они собраны и выложены по адресу http://codedokode.github.io/phpbook (вас отредиректит на другой домен, не читайте, не сохраняйте, не запоминайте его, он временный). Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то можно начать с него. Он простой и понятный. Там есть задачи, их нужно решать (чтобы стать программистом, надо писать код — иначе никак). Пости ссылки на решения в тред, мы их проверим, напишем замечания и дадим советы по улучшению. С другой стороны, если этот учебник тебе не нравится, можно читать любой другой. Или официальный мануал. Или все сразу.
Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Visual Studio Code, Netbeans PHP или PhpStorm (с ним будет удобнее).
Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.
Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP, этого недостаточно. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование.
Надо переходить к более серьезным задачкам, которые научат тебя всему этому.
- для начала прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- установи Апач + PHP (советы выше и ниже) и читай туториал http://php.net/manual/ru/tutorial.php
- Учи HTML/CSS и SQL, PDO, хотя бы основы
- Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
- Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- Еще более сложная и долгая задача на Yii/Symfony: https://gist.github.com/codedokode/8733007
- После нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- Если ты все решил, переходи к Symfony/Doctrine
- Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.
Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:
https://www.apachefriends.org/ru/index.html
Решения задач лучше показать мне, особенно на ООП, так как сам ты вряд ли увидишь все ошибки. Пости свой код на гитхаб и вкидывай ссылку в тред по мере решения. Я прокомментирую и укажу на ошибки.
Параллельно стоит подучивать английский, на первых порах можно без него, но по мере развития придется все чаще сталкиваться с англоязычными статьями, так что лучше не откладывать. Читать можно news.ycombinator.com - это что-то вроде их хабра. Также можно начинать смотреть фильмы и видео на английском.
Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
- HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
- SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
- Проверялка решений на JS: http://dkab.github.io/jasmine-tests/
- MySQL: https://github.com/codedokode/pasta/blob/master/db/databases.md
Что почитать
- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- Сайт phptherightway (перевод на русский: https://getjump.github.io/ru-php-the-right-way/ )
- По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
- По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- JS: learn.javascript.ru
- Про Git: https://git-scm.com/book/ru/v1
- Новости IT на англ. https://news.ycombinator.com/
Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492
У автора учебника нет аккаунтов и групп вконтакте, в фейсбуке, в твиттере, все "пхп-треды" там поддельные.