PHP - зачем его учить, что на нем пишут, зарплаты, фреймворки - видео HD

PHP - зачем его учить, что на нем пишут, зарплаты, фреймворки - видео
00:11:59

12n.ru 16809 роликов

PHP - зачем его учить, что на нем пишут, зарплаты, фреймворки - видео.

Язык программирования PHP, как он используется, сколько платят программистам на PHP, фреймворки, архитектура.

Статистика использования PHP:
w3techs.com/technologies/details/pl-php

Зарплаты программистов на PHP
В России: habr.com/ru/company/habr_career/blog/443810/
В мире: kinsta.com/blog/php-developer-salary/

Скачать PHP для Windows:
windows.php.net/download/

Если ничего не получается
Встроенный вебсервер PHP: www.php.net/manual/ru/features.commandline.webserver.php
Первая страничка на PHP: www.php.net/manual/ru/tutorial.firstpage.php

RSS
Лёша Корепанов
22:38
+2
— наш телеграм-чат, где можно задать вопросы
— Discord-сервер с каналами по разным языкам программирования
Мой микрофон:
Моя камера:
Мой рабочий компьютер:
Ссылки партнерские, я могу получить вознаграждение, если вы купите что-то, перейдя по этим ссылкам.
Дизлайк и Отписка
15:40
А как же Ajax?
Кирилл Несмеянов
21:08
+1
Просили комментарии, пожалуйста:
1) Классический режим работы из под апача — это mod_php (ZTS), где процесс один, а каждый запрос создаёт отдельный тред. Схема довольно сложная, т.к. требует изоляции и виртуализации окружения (вроде env переменных), может сломаться обычным блокирующим sleep, жручая и неповоротливая.
2) Классический режим работы из под энжиникс — это fcgi (NTS), где есть мастер-процесс, делающий префорк и дополнительные форки процесса (если потребуется). Общение с мастером происходит через mmap, sys-v ipc или аналоги.

Но и в первом и втором случае есть шатдаун хендлер, который чистит за собой работу.

3) Есть варианты работы через RR, PPM, Swoole, Amp, React и прочие аналоги, которые держат в памяти весь бутстрап приложения, а остальное пропускают через эвентлуп (т.е. какой-нибудь нгинкс будет как реверс прокси на реалтайм приложение). В этом случае выделяется RR, который содержит две стадии работы: Бутстрап и запрос. В остальном отличий с fcgi режимом никаких. Контролировать GC так же не требуется, сам RR за тебя всё перезапустит если случится косяк. Остальные же работают в аналогичных режимах с существующими питонами, рубями, нодами и проч.

В любом случае общую память можно держать между «запросами», используя любой доступный IPC в системе. А если оно не доступно из-коробки, то PHP позволяет инлайнтить сишные хедеры (FFI), так что можно прокинуть апи (в основном cdecl и fastcall, thiscall сложно запилить из-за манглинга в экспортных функциях, ну или я рукожоп) на любые системные вызовы.
Кирилл Несмеянов
21:19
О, ну вот ещё не правда (тайминг 8:30). PHP работает иначе =)
1) Исходный код переводится в опкод, всё тут верно.
2) Опкод помещается в mmap (MapViewOfFile) или System-V. Файлы используются только в самом крайнем случае, когда нет возможности хранить его в памяти.
3) Далее опкод оптимизируется и компилируется (всего 14 стадий, если не путаю), включая DCE, инлайнинг константных выражений и прочие приёмы.
4) Далее этот опкод (опционально), переводится в промежуточный ассемблерный код, используя LuaJIT IL
5) После этого происходит прогрев (если стоит дефолтный трейсинг флаг в конфиге), оптимизация (и деоптимизация в т.ч.) и частичная компиляция под текущее окружение (архитектура, ос и прочее). Т.е. полноценная частичная компиляция в машинный код из ассемблера в рантайме.
6) И после этого уже оно начинает воспроизводиться поверх Zend VM.

Т.е. схема работы PHP ничем не отличается от какой-нибудь Java, отличие только в том, что сам исполняемый код не в виде файла лежит, а в памяти. И php отвечает и за компиляцию и за исполнение (в отличие от отдельных бинарей javac + java).
Кирилл Несмеянов
21:28
Ну и ещё один коммент. Очередной косяк на 9:30))) В PHP типизация опционально-строгая и опционально-сильная.

1) Это означает, что проблемы с сопоставлением типов в LSP (ослабление/усиление по-Лискову, сопоставление сигнатур и прочее, что выводится на стадии компиляции константных выражений) выкидывают ошибки сразу при запуске. Тоже самое касается и с выводом алгебраических типов, когда дизъюнктивная форма типа int|string|null не может быть усилена в int|null, например.

2) А ещё это означает, что если разработчик хочет и проставляет типы — типизация становится сильной. А если разработчику надо отключить автоконвертацию в рамках единицы компиляции PHP (т.е. в файле), то ещё и статической.

P.S. Ну и define — это не совсем константа, т.к. на уровне языка определяется во время рантайма. А константа — это «const X» — она выводится на стадии компиляции.
GlitcheFert
20:43
Я один заметил гарнитуру Oculus Quest 2?
superkozel1
19:47
+1
статья про зарплаты 2018г, сейчас цифры отличаются, я middle+ -зп 4000$, но на самом деле можно и больше найти, если, например, искать удаленку cо Штатами, или забуриться в какую-то сложную узкую хайповую тематику, типа data science, blockchain, нейросети. А по табличке это верхний лимит лида, что не соответствует действительности. Хороший senior может на 8-10к претендовать, если говорить о верхних границах
Alexander Nakamura
15:54
Лайк и подписка, спасибо за видео!) Очень доступно и интересно рассказали. Буду учить пхп первым делом, а далее куда кривая выведет))
叶米克
19:23
wordpress Facebook
Вячеслав Тараканов
21:28
Да, пхп конечно топ.