@@Vlad_a450 я считаю что перегружать ненужно даже стилями и лишним js - на выходе килобайты, но только те о которых я вкурсе и уверен)) чтотамктотам я код читать не буду - у безпонтовой либы 200+папок для понта и ни один файл не используется - сосите жопу продажники ларавеля - меньше но качественней. я даже плагины вп видел где картинка на 60метров))
Скажу как есть. Разрабатываю на PHP и Laravel, включая крупные проекты. Очень нравится! За несколько лет НЕ пожалел ни разу. На Laravel писать вообще одно удовольствие, экосистема близка к идеальной, а работы хватает с головой - приходится отказываться от проектов... В сумме зарабатываю больше 5k$, так что PHP, как говорится, кормит. Рекомендую!
@@tigrpoehal1836 вирішив перейти з Yii2 на Laravel і зробити пет проект? Ти що ніде не працюєш? Так просто знайди роботу на тому, що знаєш, замість даремного вбивання часу.
пожамкал фреймворки - не понравилось что запросы типа построй меню с подкатерориями будут драконить бд не 1-2 запроса а более. я очень критичен и в кол-ве строк тоже. пишу на нативном и хендмейд с опытом 15+ лет столько не зарабатываю( ни с кем не работал - фриланшу 24/7 - дайте совет
спс. Не понимаю людей которые хейтят пхп , уже 15 лет рублю бабло на нем и вообще проблемы не вижу. А по поводу стрелок, я на пхп перешёл из С++ и поэтом он как родное
Пыху предрекают смерть минимум последних 10 лет. А он всё также живее всех живых. И все также очень много Бэка на пыхе. Нормальный язык с большим количеством вакансий на территории Украины и других стран. З.П. на пыхе не лям, конечно, но выше чем у большинства офисников и менеджеров. ПыХ живее всех живых!
@@john1989666 нова версія php + фреймворки типу Laravel дали йому друге дихання:)) Ну і не забуваємо про Wordpress, на якому накліпали стільки сайтів, що мама мія і з часом треба їх або фіксати, або переписувати. І якщо переписувати, то також вибирають PHP:)
@@DiabloSat_offнавіщо нода для малого і середнього бізнесу? Я ось ноду пишу і коли побачив скільки всього з коробки є у пихи, не розумію реально. На ноді все недоразвито, треба мільйон ліб щоб написати щось просте.
Да -> это странно, вместо точки. 😊 Зато знак $, очень хорошо помогает с первого взгляда обнаружить переменные в коде. Облегчает понимание, когда нет перед переменной "примитивных" типов.
А стрелочки имхо позволяют быстро понять, что мы имеем дело с объектом, так же быстро понять, где имя переменной с объектом, где название свойства или метода, а где еще вложенное свойство или метод какой-то. С точками иногда приходится всматриваться, если длинные названия у свойств и методов.
Знак доллара конечно же помогает увидеть переменную сразу, но это какой-то сомнительньій плюс. С тем же успехом в плюсьі можно записать джавовские варьі, подсвечивающиеся в редакторе. Поле и бєз того будет сразу видно по код стайлу
Знак бакса хорошо показывает где переменная, а где что-либо ещё, например константа. Стрелочка для объектов тоже очень крутая вещь так как легко опять же видно. Да и точка уже занята под ещё более крутую вещь - конкатенация строк. В других языка есть путаница что сделает знак "+", в ПХП сразу понятно что если стоит плюс, то конвертируются строки в числа, а с точкой всё наоборот в строки, тогда как JavaScript, который хоть и не типизированный, но будет создавать проблемы если самому не следить за типами, а пайтон так и вовсе будет выдавать ошибки. Так что PHP очень грамотно сделанный язык.
я, являясь незрячим недопрограммистом, использующим программу чтения с экрана, кодил грязно, без форматирования. писал на autoit и специальном незряченском игровом движке BGT. когда я влез в питон, как раз таки он и научил меня делать отступы во всех языках, на которых я немного писал после змеи. аа, ну и vscode, который кстати очень хорошо работает с программами чтения с экрана, тоже отступы помогал делать. В настройках программ, читающих экран для незрячих, есть пункт «озвучивание отступов».
На счет строгой типизации у php7.4+ есть такая возможность указывать типы данных, почему-то Сергей об этом никогда не упоминает, а вспоминает давно богом забытый php3/4/5 , которые уже никто не юзает
@@trial_bot вы не поняли идею указания типов. В ПХП человек делает это для себя чтобы IDE и сам язык подсказывал программисту что возвращает метод например, а язык остается динамически типизированным. Таким образом ПХП упрощает написание программ и позволяет использовать преимущества типов не налагая обязанностей, они появляются только если ты этого сам хочешь.
@@xezdx в отличие от питона, в котором, да, типы - это чисто подсказка для других программистов и для IDE, в PHP если вы указали, что функция принимает аргумент класса A, то если вы подсуните ему объект класса B, то PHP выдаст исключение (TypeException - если мне не изменяет память). А в python хоть что укажите, он всё равно примет.
@@liravesnovaya242 Так в этом и вся соль. Проблема нетипизированных языков в том, что компилятор не знает что там должно быть и не может проверить. Но для надежности если программист указал, то это нужно проверять и выдавать ошибку для быстрой отладки FAIL FAST, а если ошибка просто съедается, то эта фича уже бесполезна, с тем же успехом можно комментарии над каждой функцией писать, они хотя бы в подсказках выводятся. Вообще пайтон смешной язык, он наступил на все грабли какие только можно.
В университете Европы, где я обучаюсь, лектор посоветовал взять Laravel на курсовую, сказал, что эти пару лет хорошо его нам выучить будет, отрихтовать, причем да, обмолвил, что за пару лет там все вдоль и поперек можно выучить, а потом уже что то новое узнавать по мере выхода версий, и работу есть большой шанс найти, ибо здесь маленький городок, и то, присутствует компания, которая пишет интернет магазины на Ларе, в неё можно будет пойти на практику даже, насколько я знаю. Спасибо за ролик, он еще немного, но подтолкнул меня к изучению Пхп.
На последних версиях PHP можно писать практически такой же типизированный код, как в Typescript. Ещё буквально немного, и все будет "идеально" Единственный недостаток PHP для меня - это отсутствие встроенной асинхронности и опасность создания долгоживущих процессов. Поэтому совет: учите PHP для основной части проекта, а когда вам понадобится что-то асинхронное или долгоживущее, изучите Go, и используйте его в связке с вашим PHP проектом.
а вы точно реально работали с типами в Typescript, а не просто видели их издалека? потому что типам php до типов Typescript - как до луны. их даже сравнивать нельзя.
@@buldezir Есть одно малюсенькое НО. Типы PHP работают в рантайме. А Typescript - это-ж фактически просто продвинутый линтер, ничего более. Его подводные камни, которые JavaScript всегда готов нам подставить, намного опаснее, чем менее формализованная типизация в PHP
@@buldezir Я скажу так: иногда с системой типов Typescript приходится сражаться. И не иногда, а очень часто. Это просто неприятно, и не приносит такого уж большого бенефита. На PHP проще это всё написать, при этом безопасность кода практически на таком же уровне. И если в PHP завезут буквально пару фич, то о для меня это будет идеальным вариантом
Защита дипломов: - Тема работы "Разработка интернет магазина унитазов на php" - Не подходит, примитивно, уберите php, добавьте архитектуры - Ок, "Разработка интернет магазина услуг архитекторов ПО" - Вот! Другое дело
@@ApelsinovIvan Признаю, писал на php ну даже года 3 и достаточно профессионально умею, даже не забыл, потому, что мне на ревью приносят все время студенты и по работе. Язык как язык, когда-то был босяцким, а теперь повзрослел, оброс культурой, я бы даже сказал, что сообщество у него более культурное, чем у многих современных и модных языков.
Сергей у Laravel тоже есть ORM, называется Eloquent и половинна кишков под капотом Laravel от Symphony собственно. Я PHP разработчик, начинал с Udemy и Laravel, с ним и остался. Сейчас работаю в компании юзающей два языка и да - согласен, Ruby это боль для тех ктол не привык, ео если начнешь привыкать - поймешь его прелесть. Да не читаем с ходу, но зато там столько конвенций, делающих код стандартным во всех приложениях. Что мне не нравится в Rails и почему я не очень хочу с ним продолжать а дпльше идти по PHP - слишком высокоуровневый фреймворк. Все что происходит оно не очевидно и для новичка пришедшего из Laravel кажется магией. Да, ничего не читается и непонятно куда что уходит. Но тут надо сесть и изучить, прям конкретно. Rails это такая тема в которой нужно знать конкретно RUby и конкретно Rails. Нельзя прийти с C# с 10 летним опытом и за день понять Rails не читая с нуля доки. Спасибо за видео! Всем любовь и мирного неба над головой.
Работаю в банке, работал еще в 2х финтехах. На пхп. Интеграция с другими платежными системами, с кучей внешних систем и так далее. Дохрена всего. Больше всего работаю с симфони. Это порт джавовского спринга) А еще в современном пхп всё отлично поддерживается и есть супер строгая нулобезопасная типизация. К тому же она еще и статичная получается с версии 7.4. А с 8 версии вообще есть енамы.
Обращение к методам/свойствам объекта через стрелку не является чем-то необычным для си-подобных языков. В тех же С++ и Perl тоже используется стрелка в ООП, а в С - для обращения к полям структуры. Так что стрелка в PHP - это тоже скорее всего влияние Perl'a.
Как программист с 10 летним стажем у web разработке php использую в 90% случаях, остальные node.js если нужна асинхронность, самый простой пример это чаты, или например нужно выдавать результат во время работы скрипта, например выгружаешь огромный файл, и ты выдаёшь % обработки, и да, на php тоже можно такое, но node подходит гораздо лучше.
Вы что же используете те же инструменты что и 10 лет назад? Веб разработка уже давно на 90% какой нибудь javascript фреймворк типа react или vue, остальное это апи и бекенд и совсем необязательно на php.
@SergeyNemchinsiy Щодо Пайтона, нещодавно я пройшов невеличкий курс з пайтона, після 10 років програмування на PHP - я сидів і хапався за голову кожен раз коли треба граится відступами, коли нужно імпортувати купу бібліотек кожен раз коли тобі вони потрібні, коли бачив що всередині класу можна легко використати змінну яку визначили в клієнтському коді і ніяк не передавали всередину, коли "інкапсуляція" працює тільки для IDE, а за бажанням можна просто отримати доступ до чого завгодно всередині класу, коли немає нормальних ітераторів, а для того щоб зробити зручну ітерацію по даним треба попередньо "погратися" а щє дуже незручно коли область видимості функції об класу пересікається з областю видимості клієнтського коду через що можуть бути проблеми із однаковими іменами змінних !!!! ... Я згоден що з пайтоном можна в машин-лернінг, або у якийсь аналіз даних, але бляха-муха... після такого пафосного "Пайтон - супер-пупер мова програмування за допомогою якої можна робити шо завгодно, а щє закиди по типу принт можна зробити за один рядок коду, або переприсвоїти змінні одна одній теж за одну операцію" після занурення в пайтон в мене склалося стійке враження що мені на PHP багато чого робиться і працює набагато зручніше і пишеться коротше та швидше... Не знаю може я щє недостатньо занурився в бібліотеки та фреймворки, але на даному етапі я відчуваю що тупо втратив час та міг би вивчити за ці два місяці щось більш корисне. І як було приємно повернутися до фігурних дужок і крапки з комою і змінних із доларом :D
Главное в этой жизни найти того, кто будет вас любить так же сильно, как Сергей Немчинский любит Python, если вы понимаете о чем я))) Более часто упоминаемого языка на этом канале, наверно, нет))
Отраслевой стандарт - это Symfony. А Laravel - это стандарт для формошлёпства) Ну и да, джанго и рельсам до Laravel как до луны, если мы про функционал. Ну и далее про симфу тоже дичь. Доктрина - это ни разу не часть Symfony. А то что есть пакет/бандл для её интеграции не делает это одним и тем же. Это примерно как сказать, что хибернейт часть спринга. Или TypeORM часть метеора или ангулара. Ну и про пых тоже, странно в 2023ем называть пых, у которого ещё более 5ти лет назад появилась опция строгой статической контрактной типизации называть языком с динамической))) Он по части строгости, при желании, уделывает ту же жабу в пух и прах, благо в нём и алгебраические типы есть и T означает T, а не null или Object (привет NPE!). И это мы про стат. анализ ещё не начали говорить, где можно указать типы, вида "не пустая строка в нижнем регистре". Короче, начало для новичков - это понятно. А дальше уже отсебятина, которая основана лишь на предположениях и домыслах. Видно что Сергей давно отстал от трендов и оценивает язык по версии 5-10 летней давности. P.S. Ещё отдельно хочу придраться к тому, что автор даже поленился чуть-чуть подумать на тему причинно-следственных связей. Например, если вместо стрелочек будут точки, то на что менять оператор статического доступа к методу? Там тоже два символа. Или на что менять тогда оператор конкатенации? На плюсик как в JS? Чтобы от перемены мест слагаемых сумма менялась?) Не, понятно что автор как угодно может говорить: "нравится" или "не нравится". Но как бы тут претензия к попытке объективного суждения, а фактически неоспоримые плюсы языка преподносятся как минусы, что звучит откровенно глупо и на уровне какого-нибудь Хауди-Хо. Уж сорян. P.P.S. Ну и наброс на джаву: В PHP есть кооперативная многозадачность из коробки, а в Java через костыли и Project Loom. В PHP есть алгебраические типы, поддерживающие LSP. В Java её можно добиться, взяв Ceylon или Scala (т.е. взяв любой другой язык, кроме Java, kekw). В PHP есть пакетеный менеджер, решающий все возможные конфликты версий. В Java придётся пройти 10 кругов ада, чтобы подружить две разные версии одного вендора так, чтобы проект заработал (ибо один вендор требует одну версию, а другой - другую. Это частое явление). В PHP зависимости опциональные и можно реализовывать фектори, основывающиеся на опциональных контрактах/интерфейсах, а в Java будь добр захардкодить зависимость в classmap. В PHP за счёт метапрограммироования и интроспекции языка можно в пол пинка реализовать high-order messaging и прочие функциональные штуки (каррирование, частичное применение), а в Java или байт-код патчить (здравствуй Lombok) или никак (ибо рефлексия - максимум что доступно). В PHP можно инлайнить сишный код (или даже LLVM IR), а в Java будь добр собери отдельную обвязку для JNI. Ну и т.д., так можно долго очень)))
Небольшой плюс от $ в начале переменной - это явно различает что это переменная, а не константа. Ну и можно реализовать конструкции вроде динамического объявления или обращения к переменным $a = 'var'; $var = 1; print $$a; выведет 1, не лучшая практика, но как элемент в какой-нибудь хитровложенной рекурсивной функции вполне помогает. А адресация точками или стрелочками это чистая вкусовщина на основе привычки, лично мне наоборот привычнее поставить стрелочку, а, для избежания длинной стоки, каждую стрелочку делать с новой строки вроде $object->getSubObject() ->getSubObjectProperty() ->getValue() Ну и стандарты с возможностью установить строгую типизацию тоже язык сильно улучшило Если раньше прокатывала конструкция вида public function do_something($input) { ... ... ... return true; } То сейчас такое на любом ревью завернут на переоформление в вид public function doSomething(string $input): bool { ... ... ... return true; } как результат, попытка передать что-то кроме строки, выдаст ошибку, как и возвращение чего-то кроме true/false
: bool ну и шляпа - я понимаю что это комуто нужно и я рос в php с того века - а зачем???? приведи типизацию переменной если нужно. не помню чтоб у меня был баг - возможно я слишком медленно пишу)
Спасибо, Немчинский. Благодаря тебе, у меня восстановился интерес к программированию, потому что в школе он был, но такой себе(из-за российского обучения), а сейчас он начинает восстанавливается. Объяснение хорошее, бех лишней воды. То, что нужно, чтобы заинтересовать людей.
2:20 - Насчёт операторов адрессации "." и "->". В С++ есть и то, и другое. "." - это когда объект (структура) статические, а "->" - когда динамические.
Теперь мне понятно, почему, когда я пыталась учить Руби в качестве первого языка, я не поняла ни фига (и бросила) и почему теперь, когда я изучаю PHP, мне все понятно и в кайф.:)
Писал 5 лет на пхп. Приятный синтаксис, читабельный. Вменяемое ООП. Как первый язык - отлично. Не хватает дженериков и многопоточности (раз уж многие используют пхп в том числе для бэкенда).
Угу. Правда не стоит забывать, что если в PHP не хватает скорости или функционала, то всегда можно написать своё расширение на C++ :) Много лет назад тестировал эту фичу и остался доволен. Та же многопоточность вроде бы доступна через расширение 🤔
I am not ambidextrous. I do not enjoy static typing, and objects animate my mind's eye. But I have come to appreciate the fact that others illuminate their creativity with just as much intensity as I do mine, using functional programming constraints and explicitly spelled out types. As long as I never have to soil my Ruby with type hints or write all front-end code in TypeScript, I can so happily coexist with those who adore Go or can't stand JavaScript. Vive la différence!
@@igoraleksandrovich1498 я разве написал что у них есть что то общее (постановка вопроса даже весьма странная, один фреймворк дргой просто язык)? Я про то, что одно может дополнить другое если требуется решить проблему н-р "бутылочного горлышка" в контексте производительности
На счёт динамической типизации - на php она включена по умолчаю, но по желанию легко включается строгая типизация, так что к минусам этот факт относить нельзя. Ну и я уже не помню, когда последний раз встречал проекты, где бы использовали динамическую типизацию
Коли ви говорили про фреймворки я дуже сподівалася що ви згадаєте Zend Framework А на нових версіях пхп можна писати використовуючи строгу типізацію :) Коли її почали завозити - мені пхп почав більше подобатися.
Так він давно вже не Zend Framework, а Laminas. Я трохи використовував Zend 1.5, важкуватий, але мені він подобався, особливо робота з формами. У 2021 спробував АРІ Tools з Laminas скористатися, але, на жаль, не вийшло. На етапі встановлення вивалило купу несумісності пакунків, я подовбався з годину і кинув.
Когда-то писали на Perl, потом PHP, сейчас Python - стилистика python с пробелами и табуляциями - на мой взгляд самая удобная, без лишнего. Но это вопрос вкусовщины. Что хорошего в php - это, как было сказано - можно писать сразу сайт на голом php, на пайтоне нужен минимум какой нибудь flask. Сильная сторона Пайтона - я вот десктоп приложение (с окошками) для Линукс пишу и сопровождаю уже много лет и он отлично справляется (pyqt)
Как разработчик PHP с 3-ех летним стажем скажу что PHP отлично подходит для e-commerce, но почему то всегда суют в interprise (банки, Авито и т.д.). Все бы ничего php отлично работает, кучу библиотек и можно смириться с отсутствием женериков и строгой типизации, ну или нет down и up кастов. Но что меня больше всего раздражает, это синхронщина. Это отлично работает, пока дело не дойдет до вебсокетов или задач в крон. В целом крон на laravel к примеру это кажется отдельный поток с do while , но на мой взгляд на яве асинхронщина сделана удобнее и понятнее. В целом если честно немного пожалел что начал свою карьеру с php а не с java, потому что с php тяжело уйти по причине того, что ЗП на php вроде бы как поменьше, но не настолько меньше чтобы учить java/c# и потом мучиться с синтаксисом, контролем переменных и структурами данных (в яве для объектов есть коллекци или hasMap ) в php массив по сути это HashMap как в яве и работает он одинаково стабильно и быстро что на числах, что на строках, что на объектах... Нет деревьев, но ни разу не видел чтобы хоть кто-то делал дерево в яве ... В общем , для старта топ язык так скажем. А еще плюс в том, что без работы Вы точно не останетесь
в ПХП много чего нет того что в Яве. Особенно, что касается ООП, оверлоады методов и конструкторов и т.п. Одно из больших преимуществ Явы, на мой взгляд, это компилятор. Но я все одно бросил Яву из-за её многословности.
А для каких задач нужен такой асинхрон, с которым не справится очередь в месенжере? Это не троллинг, реально интересно. Например у меня типичная задача "зарядить 50 писем на отправку", так я их просто пихаю в очередь, пользователю отдаю ответ "письма поставлены на отправку" и забыл о проблеме. Дальше уже крон или что другое как раз асинхронно эту задачу выполняет. А для чего ещё надо?
@@GenaTolstijмне кажется,что люди часто путают многозадачность во фронте где при загрузке страницы асинхрон ускоряет загрузку и в бекенде где многозадачность это просто очередь)
@@80689248440 дэк, бро) чего там навидываться, если тот язык был для примитивных веб-сайтов и Вордпресса) Золотые времена) Самый понятный код, ну или я к шарпам привык, хз
А типа на 8 нельзя писать так же как на 5.6 :) Если очень захотеть, то на нем и как на 4 можно писать за редким исключением (либа мускула стала другой)
Интересно, но нах политику разводить не понятно, он мог так же нмций танк изобразить с чёрным крестом в уголке, если говоришь о программировании, то и говори о нём, а не о своей оирентации
Сергей, вы упомянули, что у Symfony есть своя ORM, но Laravel тоже пользует ORM - Eloquent. В чем же преимущество Symfony'ского варианта если вы его отдельно выделили?
Тут стоит смотреть в сторону холивара "ActiveRecord vs Data Mapper". Плюс доктрине, которая в симфе, симфа то не особо и нужна - оно и само умеет быть отдельным ORM. Например перелазя с yii2 с ее AR на симфу я с доктрины поначалу очень сильно плевался, не понимая какого черта у меня запросы отдельно, данные отдельно, а как это всё поженить вообще непонятно и почему я в entity не могу сервис заинжектить. Потом поумнел - попустило :)
@@GenaTolstij Учитывая, что я новичок - про "ActiveRecord vs Data Mapper" и доктрину я не шарю - поэтому приму так, что для симфы в принципе ORM не нужна, так как он сам ORM, а свой ORM лучше встроенного😁
@@GenaTolstij Доктрина сама і є окремою ОРМ, вона була ще до появи другої Сімфоні. Насправді з Сімфоні можна використовувати будь яку ОРМ, навіть той самий Елокуент, якщо є бажання.
@@sani4051992 не робіть помилкових висновків, бо з часом вони у вашій свідомості закарбуються як "істина" і буде дуже важко їх позбутися, а заважатимуть вони дуже сильно. Просто розберіться що це за патерни актив рекорд та дата мапер. Почитайте Фаулера, він роз'яснює.
Що особисто мені не подобається у ПХП: - Погана можливість підставляти щось у строки. Можно підставити лише змінну: "bla bla {$this->foo}". Тут у JS/TS набагато краще: `bla bla bla ${any_expression}`. Можно підставляти константи, вирази тощо. - Нема дженериків. Були б хоча б типовані масиви. Є лише костиль PHPDoc, но то таке, ти описав, массив ЧОГО функція має отримати, написав док, а потім змінив код, а ДОК змінити забув. - Погане оголошення локальних змінних. Причому властивості класів можно оголосити нормально з типом. Ну так. це не є проблема, бо в нас функції до 100 строк, можно пойняти, але ні, це погано. Дайте мені ключеве слово для оголошення локальної змінної, дайте мені вказати її тип.
- "text" . (Any expression) . "Text"; Хотя лучше через sprintf в этом случае завернуть. - отучиться передавать в функции массивы и юзать коллекции и dto. - при объявлении переменной просто присвоить ей то, что в ней должно быть. Всё. Если вдруг в процессе переменная из массива станет строкой - Иде ругнет. Но вообще да, в простых переменных строгую типизацию можно бы и завезти.
@@GenaTolstij - "text" . (Any expression) . "text" - ну зрозуміло, але треба слідкувати, якими лапками ті відкрив строку, наприклад якщо раніше використовувалась підстановка змінної, я маю на указі "bla bla {$foo} bla " . (MyClass::CONST) . ' bla bla'. Й не так зручно контролювати пробіли перед або після виразу. Це просто відсутність приємного цукру. - це фактично відмовитись від масивів. Навіть якщо забути про швидкодію, ну щоб передати масив строк городити якусь сутність ну таке собі. - й типізацію й оголошення: $foo = 1; // ... $foo = 2; // ... func($foo); Планую передати 1, бо насправді код мав бути таким: let foo: number = 1; // ... let foo: number = 2; // помилка одразу // func(foo);
@@adicthreex3530 , смотри - По поводу кавычек :) У меня это уже до автоматизма доведено :) Я двойные в коде не использую никогда. Хотя, справедливости ради, "bla bla bla $foo blablabla" подставит значение переменной, а вот 'bla bla bla $foo blablabla' выведет строку в неизменном виде. В ПХП одинарные, двойные кавычки это разные кавычки. Но лично я предпочитаю конкатинацию, как просто универсальное решение, иногда sprintf, но его люблю, честно, меньше. - в пхп нет всех этих let, var, const и прочей ерунды и, как по мне, это очень правильно. зачем? переменная сетапится первым же присвоением в неё значения, если ты обратился к несуществующей переменной - получаешь notice. И не надо следить инициализирована переменная, или нет, перед присвоением ей значения. Тупо проще ИМХО. А вот если переменная в процессе работы поменяет свой тип - ИДЕшка, насколько помню, это подсветить должна и ругнуть. Но ели уж так хочешь указать строго тип: $i = (int)1; или $a = (string)'Ababa'; Пожалуйста. Это же можно делать при передаче переменной в функцию, то есть func((string)$a) и у тебя всегда приведёт к нужному типу, конечно если то, что во входящей переменной, так умеет. И опять же, пых это тебе не JS, когда 1+'1' может быть 2, а может быть 11 (я там не помню при каких условиях оно клеит, а при каких суммирует), в пыхе для конката используется точка, для сложения - плюс, всё, и никакой путаницы.
@@GenaTolstij const є. У більшості мов, у тому числі "дорослих", на яких пишуть щось велике є окрема інструкція оголошення змінної, та інструкція оголошення з можливим присвоюванням відрізняється від інструкції присвоювання. У PHP це одна інструкція й це погано. Наприклад: $counter = 9; for ($counter = 1; $counter < 4; $counter ++) {} var_dump($counter ); Ми у першій строчці оголосили змінну, а у другій у першому виразі циклу for, де "$counter = 1" - це ми намагаємося ввести нову змінну або присвоїти щось у стару? А що буде передано у var_dump? Просто якщо була б явна інструкція того, що ми у циклі оголошуємо змінну - ми б отримали миттєву помилку у час написання (теоретично, бо в мові може бути затемнення). Ну й VSCode нічого не каже про "$a = 0; $a = true;" бо це легальний синтаксіс.
Почему пхп плохо, ответ профессионала: существует несколько часто упоминаемых фреймворков: Zend, Laravel, Symfony, Yii, CakePhp, CodeIgniter Ещё есть какие-то другие фреймворки, типа всякие ответвления от них. Есть легаси-фреймворки, самописы, есть Битрикс, который занимает долю рынка. И в каждой вакансии эти фреймворки упоминаются в рамдомном порядке. Это не считая разнящихся требований по всяким базам и кэшам. Это не считая каких-то «весомых» библиотек, типа JSON-API, SWAGGER и тп, которые по своим мануалам сопоставимы с мануалами по самим фреймворкам. Хоть подходы в фреймворках и совпадают, это не отменяет факта, что тебе в любом случае нужно будет помимо работы всегда держать под рукой открытую документацию, а задачи выходящие за рамки документации - это ещё та песня, когда ты лезешь в кишки этих решений и смотришь, как натянуть сову на глобус. В итоге работа по этому направлению сопряжена с постоянной мозгодрочью и нервяком, а компетенция не растет, ибо подобное распыление на всякие мелочи в итоге не даёт никакого весомого профита в проф плане.
@@baldislavep00pczynski68 в пхп точно не лезть. Дерьмовый стек, а на собеседовании на тебя смотрят на говно даже с 10+ годами опыта. Я бы вообще посоветовал в программирование не лезть вообще. Неоправданно раскрученная херня инфоцыганства про чудесные истории успеха.
пишите код для себя, для души, на выбранном одном фреймворке - и не надо будет париться со всякими легаси, чужими самописами и прочей радномной ерундой ))
@@TREVOGA Полностью согласен, что программирование сегодня тема не для денег. Работа руками или ногами приносит денег зачастую не меньше, думает сегодня ИИ. Если только для себя, вордпресс поковырять то пыха незаменима.
Кстати, C-подобная конструкция $a.='bla-bla-bla'; там тоже работает. И в JS тоже (с поправкой на синтаксис) Сам пользуюсь, но ни разу подобного в примерах не видел.
Враховуючи початкову концепцію відсутності типізації воно має сенс, '1' . '1' = '11', '1' + '1' = '2', хоча я не впевнен, що воно так спрацює, но крапка як окремий оператор краще, коли ти не знаешь, якого типу в тебе змінні.
В PHP8 динамическая типизация уже не очень динамическая, все гораздо строже. PHP начиная с 7 версии все больше движется к строгой типизации и думаю в версии 9/10 уже мало чем будет отличаться от того же Java
Они оба, по сути, отраслевые стандарты. Симфа в проектах посерьёзнее, ларка - где проще. Главные их конкуренты, zend и yii соответственно, немного упокоились с миром :(
Ох уж эти доллары=) Многие думают что доллары и стрелочки это что-то страшное, но я вас уверяю, несколько недель практики и вы их вообще перестанете замечать) Но вот читать другой язык, например яву, станет чуть сложнее) Так как $/this/static/self и т.п. помогают ориентироваться в коде быстрее. Также многие говорят о типизации, но уже давно можно обезопасить себя хинтами. Да, в PHP не хватает определенных структур данных, по типу коллекций и т.п. с коробки, это не удобно. Так как подобные штуки приходится писать самому. Но в контексте PHP, это как правило делается очень редко и для этого существуют сторонние библиотеки, интерфейсы от разработчика языка и т.п.
По поводу знака ->, в С и С++ он тоже юзается как указатель на поля обьектов/структур. По-моему к методам тоже так можно обращаться, правда уже не вспомню точно))
Сергію, дивлюсь вас вже кілька років, і от маю цікаве як для мене питання. А чому ви ніколи не говорите про мову програмування VisualBasic? Не в тренді чи як? Прошу надати відповідь. Дякую
Синтаксис PHP как по мне прекрасен. Единственное печалит это то, что из коробки нет мультипоточности, да и в целом PHP намного медленнее того же GO, а так всё збс
Стрелочки вместо точек появились, потому что точки были уже заняты в конкатенации строк. На заре язык был настолько прост, что ООП в нём даже не планировалось.
Когда Бог писал код Вселенной, то сделал это на Java. И увидел Он, что это хорошо. Потом заметил скучающего, одинокого Адама и написал код для Евы на Perl-e. И ужаснулся Адам и с проклятиями убежал вглубь Эдемского сада, где написал на PHP pornhub. Нет уже ни Адама, ни Евы, а порнхаб есть. PHP - write once, run forever.
А вот такой вопрос 😃 Сергей в трасляциях при ответе на вопрос о зарплатах програмистов на разных языках отвечал что плюс минус одинаково. То есть если я правильно понимаю то JS и PHP программист будут зарабатывать схожие суммы?
Это странно, т.к. js и php идут рука об руку. Аналога js для динамики на сайте не существует. А php это серверный язык. Если ты про ноду, то пхп чувствует себя попроще т.к. не такая конкуренция и работы больше на пх.
@@super0leg вообще не скоро (а может даже и никогда из-за особенностей внутренних реализаций), ибо нет возможности типизировать списки и прочие вещи, generic-и туда же, локальные переменные. Приходится пользоваться аннотациями + статический анализатор. Хоть и на текущий момент везде использую строгую типизацию, но не стоит забывать что это накладывает небольшой оверхед в рантайме, ибо нам в рантайме всегда приходится проверять корректность типов переменных.
RUBY? А как насчет APL по читабельности? Кстати, такому почитатателю Python, почемы бы не просветить народ о Majo? Java, я же на эту цацку-песку от Sun Microsystem даже сертификат имею, экзамен сдал хотя нихрена никогда не работал. Но, индульгенция крутая, HR уважали всегда. Там такая бумага для вставляние в рамочку на стенке, со всеми ободками. :)
В перле кстати префиксы у переменных были вполне осмысленны. $ - скаляр, @ - массив, % - хэш. В пыху жэ оно либо бездумно скопипащено с перла, либо, что вероятнее, взято с баша.
Ну в хороших компаниях без строгой типизации практически не пишут. Ну исключение что для простых переменных нет. А так тайпт хинты, свойства более менее покрывают нужды. Плюс есть статический анализатор, тот же phpstan. Сейчас без него проекты не заводим. в php 8.2 уже есть пометка класса как ридонли, что помогает делать имутабельные классы. Ну и про цены тут тоже сильно зависит от проектов. У нас обычно по несколько миллионов рублей разработка. Но я давно не делал уже обычных сайтов. Как правило это корпоративные CRM. Но нужно понимать что нормальные проекты как правило еще включат по мимо стат анализа и линтеров еще автотестирование. Как правило юнит тесты и это все сказывается на цене, но и повышает качество кода.
про пайтон на 100% согласен, для меня его отступы - это прям ощутимая боль, аж передергивает про читабельность кода в зависимости от языка программирования никогда когда не задумывался, но после слов про то, что PHP - один из самых легко читаемых, задумался и пришел к выводу, что таки да про симфони - сейчас это скорее "фреймворк для фреймворков", любая его часть способна работать сама по себе, в итоге он используется в том же Laravel, Yii2(который почему-то до сих пор цветет и пахнет в СНГ, хотя морально устарел еще лет 5 назад, ибо эдакий антиSOLID), Drupal начиная с 8 версии, и при этом сам симфони как самостоятельный фреймворк, на сколько знаю, используется относительно редко про недостатки - их много, но как по мне, его самый главный недостаток - полный бардак с аргументами в функциях/методах - можно глянуть на список аргументов, например, для array_map и array_filter(первое что в голову пришло), и такое тут на каждом шагу, в итоге я примерно за 15 лет постоянной работы с ним, никак не могу запомнить порядок аргументов, даже в самых часто используемых функциях, чего не наблюдал за собой ни в одном другом языке программирования, но это связано с тем, что PHP развивается еще с 90х годов и несет в себе очень много легаси, а с остальными недостатками вполне можно мириться/привыкнуть про плюсы - почти все что требуется для работы с вебом - есть и работает из коробки, либо в виде модулей для самого PHP, а так же наличие самого дешевого хостинга для маленьких PHP проектов или CMS, что делает его очень привлекательным для бизнеса про CMS - на других языках - их полно, но до первой тройки CMS\CMF на PHP им прям очень далеко, разве что джанго близко подошел
Є таке питання: хочу зробити веб сайт з базою даних яка в майбутньому може мати терабайти. має бути все швидко і наватаження в майбутньому може бути сотні мільйонів користувачів в місяць. Також сайт має бути синхронізований з додатками для айфон та андроід! Підкажіть будь ласка які технології мені вибрати?
ну на python-е не только веб фреймворки. я вроде где-то слышал, что python можно подключить к вебу и использовать print для вывода на вебсайт прям как echo в Пхп. но может и ошибаюсь.
Обожаю данные особенности. Пишу на питоне, обычно использую VS Code, вообще никогда не сталкивался с проблемами пробелов. Я даже понять не могу эти ваши проблемы.
@@aurceive, потому что скорее всего Питон Ваш первый ЯП. А когда Вы писали бы на протяжении минимум 8-12 лет на СИ-синтаксисе, то про пробелы и отсутствие точек с запятой сказали бы:" Фу, что это за дичь?".
@@aurceive , это я знаю. И про скобочки. И я так первое время и писал код ровно до тех пор пока не понял, что Си-Синтаксис из меня не выйдет наверное никогда.)))
у меня другой вопрос к знатокам. на сколько актуальны сейчас perl и ruby и где они применяются? на изучение выбрал для себя java как наиболее актуальный и универсальный язык. на первый взгляд пока. не сказал бы что его учить сложно, наоборот. но из минусов отметил его вариативность во благо сокращения кода. например a=a+1 то же самое что a++. это вынуждает запоминать ещё что-то, хотя бы ради того что придётся читать чужой код. ну и есть другие примеры. претензии пока только к этому. по моим наблюдениям ещё не в тему. си шарп очень похож на джава, что в плюс, если хотим писать нативно под винду. наверняка есть специальные трансляторы, которые переводят код из джава в си в решётку или наоборот. виндой я не пользуюсь, но. расстроил монструозный синтаксис языка shell, который используется по умолчанию в линукс. для командной строки я бы предочёл интерпретатор на другом языке. опять таки. это дело вкуса. можно привыкнуть к синтаксису
Ну типизации достаточно завезли в последних версиях PHP. Параметры, поля классов, результаты функции уже можно типизировать (а можно и не типизировать). Может и завезут в 9-ку типизацию переменных
Доброго времени суток, друзья. У меня есть вопросик по поводу конспектирования материала. Какой примерно процент информации записывать. И все в этом роде только идентично с английским, заранее спасибо!!!!
Понимаю если бы в минусы поместил среду выполнения, что php "рожден чтобы умирать", что нет нормальной паралелльности. Может быть что-то еще. К стрелочкам придраться это конечно круто...
PHP со временем становится очень похожим на Java. К сожалению на PHP сейчас пишутся не только сайты, но и целые Enterprise системы, но вот непонятно зачем.
@@ei2292 хороший вопрос, если у вас цель заниматься исключительно вебом то можно остановится на PHP, и ознакомится с такими фреймворка и как Symfony или Laravel. Если вы хотите именно освоить программирование в более широком смысле C# будет лучше. Хотя для начала может быть есть смысл посмотреть на Python. Какие у вас цели? Какого типа задачи вы бы хотели бы решать?
Працюю на enterprise. З приводу типізації, гарною практикою є ставити строгу типізацію по проекту. І немає проблем. Не розказав про відсутність многопоточності і не дивлячись на апдейти він все таки повільний(
10:40 Пишу на Python около 3 лет. Никакой разницы с фигурными скобками не замечал , всё равно абсолютно во всех языках принято делать отступы после начала нового блока кода, ведь его тогда легче читать. Объясните, кто как понимает, будет интересно почитать
@@woodzimierz9621 пробіл видно очима одразу, бо весь код здвинутий вбік. Фігурну дужку на відміну від цього можна і не помітити одразу. Це скоріше питання смаку, але ніяк не проблема мови програмування
Для мене правильні пробіли краще ніж фігурні дужки. Два зайці одним пострілом: і правилне форматування і відсутність зайвих символів (фігурних дужок). Так само як відсутність стрілки краще ніж її наявність...відсутність фігурних дужок краще ніж їх наявність. Це ще можна назвати "вкусовщина", але точно не мінус як говорить Пан Сергій в кожному відео)
@@VladKochetov Насправді? Не завжди. Я на пайтоні писав доволі складні застосунки, тому кажу зі свого досвіду, якщо велика кількість рядків коду, а зсув відбувся вище за межами екрану, то це та ще веселуха шукати його.
🦊 Обучение PHP с ментором в FoxmindEd - go.foxminded.ua/3PgJGer
К стати, есть интересный видос на ютубе, в котором "чистый" код противопоставлен "быстрому" коду. Может будет интересно разобрать! )
@@Vlad_a450 в п'ятницю вийде відео на схожу тематику
Зачем нужен лендингу CMS ?
В PHP есть строгая типизация.
@@Vlad_a450 я считаю что перегружать ненужно даже стилями и лишним js - на выходе килобайты, но только те о которых я вкурсе и уверен)) чтотамктотам я код читать не буду - у безпонтовой либы 200+папок для понта и ни один файл не используется - сосите жопу продажники ларавеля - меньше но качественней. я даже плагины вп видел где картинка на 60метров))
Знак $ напоминает PHP разработчику зачем он пишет код.
Мотивирует
я ещё он помогает сразу увидеть переменную)
поржал)
Скажу как есть. Разрабатываю на PHP и Laravel, включая крупные проекты. Очень нравится! За несколько лет НЕ пожалел ни разу. На Laravel писать вообще одно удовольствие, экосистема близка к идеальной, а работы хватает с головой - приходится отказываться от проектов... В сумме зарабатываю больше 5k$, так что PHP, как говорится, кормит. Рекомендую!
Поделись работой)
тоже решил перейти на laravel с Yii2, сделаю пет проект какой нибудь
Я тоже, когда фреймворки увидел - мое мнение сразу о нем изменилось
@@tigrpoehal1836 вирішив перейти з Yii2 на Laravel і зробити пет проект? Ти що ніде не працюєш? Так просто знайди роботу на тому, що знаєш, замість даремного вбивання часу.
пожамкал фреймворки - не понравилось что запросы типа построй меню с подкатерориями будут драконить бд не 1-2 запроса а более. я очень критичен и в кол-ве строк тоже. пишу на нативном и хендмейд с опытом 15+ лет столько не зарабатываю( ни с кем не работал - фриланшу 24/7 - дайте совет
спс. Не понимаю людей которые хейтят пхп , уже 15 лет рублю бабло на нем и вообще проблемы не вижу. А по поводу стрелок, я на пхп перешёл из С++ и поэтом он как родное
я тоже не понимал и даже немного клал на этих людей с хабра))
Пыху предрекают смерть минимум последних 10 лет. А он всё также живее всех живых. И все также очень много Бэка на пыхе. Нормальный язык с большим количеством вакансий на территории Украины и других стран. З.П. на пыхе не лям, конечно, но выше чем у большинства офисников и менеджеров. ПыХ живее всех живых!
После появление 7 версии , к пыхе вернулась жизнь, сайты на новых версиях работают в два три раза быстрее
@@john1989666 , а сейчас уже восьмая версия и она ещё на порядок круче. ПыХ рулит.
@@john1989666 нова версія php + фреймворки типу Laravel дали йому друге дихання:)) Ну і не забуваємо про Wordpress, на якому накліпали стільки сайтів, що мама мія і з часом треба їх або фіксати, або переписувати. І якщо переписувати, то також вибирають PHP:)
Но сейчас чаще и чаще предпочитают при разработке node js.
@@DiabloSat_offнавіщо нода для малого і середнього бізнесу? Я ось ноду пишу і коли побачив скільки всього з коробки є у пихи, не розумію реально. На ноді все недоразвито, треба мільйон ліб щоб написати щось просте.
Да -> это странно, вместо точки. 😊 Зато знак $, очень хорошо помогает с первого взгляда обнаружить переменные в коде.
Облегчает понимание, когда нет перед переменной "примитивных" типов.
А стрелочки имхо позволяют быстро понять, что мы имеем дело с объектом, так же быстро понять, где имя переменной с объектом, где название свойства или метода, а где еще вложенное свойство или метод какой-то. С точками иногда приходится всматриваться, если длинные названия у свойств и методов.
Стрелку с плюсов взяли. Подчеркивает, что объекты по ссылке хранятся
@@МихаилКрамер-н7ш после C#, не привычно ещё
@@МихаилКрамер-н7ш я думаю настоящая причина стрелочек в том, что точка уже зарезервирована конкатенацией была.
Знак доллара конечно же помогает увидеть переменную сразу, но это какой-то сомнительньій плюс. С тем же успехом в плюсьі можно записать джавовские варьі, подсвечивающиеся в редакторе. Поле и бєз того будет сразу видно по код стайлу
Знак бакса хорошо показывает где переменная, а где что-либо ещё, например константа. Стрелочка для объектов тоже очень крутая вещь так как легко опять же видно. Да и точка уже занята под ещё более крутую вещь - конкатенация строк. В других языка есть путаница что сделает знак "+", в ПХП сразу понятно что если стоит плюс, то конвертируются строки в числа, а с точкой всё наоборот в строки, тогда как JavaScript, который хоть и не типизированный, но будет создавать проблемы если самому не следить за типами, а пайтон так и вовсе будет выдавать ошибки. Так что PHP очень грамотно сделанный язык.
отдельный оператор для конкатенации это и правда удобно. В JS с этим бывают недоразумения
@ivanpetrov2435 с пхп7, особенно 8 уже всё для этого есть
абсолютно согласен)))
я, являясь незрячим недопрограммистом, использующим программу чтения с экрана, кодил грязно, без форматирования. писал на autoit и специальном незряченском игровом движке BGT.
когда я влез в питон, как раз таки он и научил меня делать отступы во всех языках, на которых я немного писал после змеи.
аа, ну и vscode, который кстати очень хорошо работает с программами чтения с экрана, тоже отступы помогал делать. В настройках программ, читающих экран для незрячих, есть пункт «озвучивание отступов».
На счет строгой типизации у php7.4+ есть такая возможность указывать типы данных, почему-то Сергей об этом никогда не упоминает, а вспоминает давно богом забытый php3/4/5 , которые уже никто не юзает
ну так и в питоне можно типы указывать, это всё ещё не делает язык не динамически типизируемым
@@trial_botв питоне интерпретатор игнорирует указывание этих типов, в пыхе же бросит исключение если ты ждешь string, а получаешь int
@@trial_bot вы не поняли идею указания типов. В ПХП человек делает это для себя чтобы IDE и сам язык подсказывал программисту что возвращает метод например, а язык остается динамически типизированным. Таким образом ПХП упрощает написание программ и позволяет использовать преимущества типов не налагая обязанностей, они появляются только если ты этого сам хочешь.
@@xezdx в отличие от питона, в котором, да, типы - это чисто подсказка для других программистов и для IDE, в PHP если вы указали, что функция принимает аргумент класса A, то если вы подсуните ему объект класса B, то PHP выдаст исключение (TypeException - если мне не изменяет память). А в python хоть что укажите, он всё равно примет.
@@liravesnovaya242 Так в этом и вся соль. Проблема нетипизированных языков в том, что компилятор не знает что там должно быть и не может проверить. Но для надежности если программист указал, то это нужно проверять и выдавать ошибку для быстрой отладки FAIL FAST, а если ошибка просто съедается, то эта фича уже бесполезна, с тем же успехом можно комментарии над каждой функцией писать, они хотя бы в подсказках выводятся.
Вообще пайтон смешной язык, он наступил на все грабли какие только можно.
В университете Европы, где я обучаюсь, лектор посоветовал взять Laravel на курсовую, сказал, что эти пару лет хорошо его нам выучить будет, отрихтовать, причем да, обмолвил, что за пару лет там все вдоль и поперек можно выучить, а потом уже что то новое узнавать по мере выхода версий, и работу есть большой шанс найти, ибо здесь маленький городок, и то, присутствует компания, которая пишет интернет магазины на Ларе, в неё можно будет пойти на практику даже, насколько я знаю.
Спасибо за ролик, он еще немного, но подтолкнул меня к изучению Пхп.
На последних версиях PHP можно писать практически такой же типизированный код, как в Typescript. Ещё буквально немного, и все будет "идеально"
Единственный недостаток PHP для меня - это отсутствие встроенной асинхронности и опасность создания долгоживущих процессов.
Поэтому совет: учите PHP для основной части проекта, а когда вам понадобится что-то асинхронное или долгоживущее, изучите Go, и используйте его в связке с вашим PHP проектом.
а вы точно реально работали с типами в Typescript, а не просто видели их издалека?
потому что типам php до типов Typescript - как до луны. их даже сравнивать нельзя.
@@buldezir Есть одно малюсенькое НО. Типы PHP работают в рантайме. А Typescript - это-ж фактически просто продвинутый линтер, ничего более. Его подводные камни, которые JavaScript всегда готов нам подставить, намного опаснее, чем менее формализованная типизация в PHP
@@vitiok78 я согласен что ТС это линтер, но изначальный коммент и мой ответ был не про это.
@@buldezir Я скажу так: иногда с системой типов Typescript приходится сражаться. И не иногда, а очень часто. Это просто неприятно, и не приносит такого уж большого бенефита. На PHP проще это всё написать, при этом безопасность кода практически на таком же уровне. И если в PHP завезут буквально пару фич, то о для меня это будет идеальным вариантом
Защита дипломов:
- Тема работы "Разработка интернет магазина унитазов на php"
- Не подходит, примитивно, уберите php, добавьте архитектуры
- Ок, "Разработка интернет магазина услуг архитекторов ПО"
- Вот! Другое дело
А что Вы можете по Пыхе сказать, Тимур? Вы писали на PHP?
@@ApelsinovIvan Признаю, писал на php ну даже года 3 и достаточно профессионально умею, даже не забыл, потому, что мне на ревью приносят все время студенты и по работе. Язык как язык, когда-то был босяцким, а теперь повзрослел, оброс культурой, я бы даже сказал, что сообщество у него более культурное, чем у многих современных и модных языков.
Интересно и убедительно! Благодарю вас! Больших успехов вам и всем слушателям!❣️
Сергей, отличные мысли!!! И подача тоже. Ждем обзор на GO
"Немного раздражает наличие долларов, но к этому можно привыкнуть." - ох уж эти программисты 😂
Комментирую каждый ролик про PHP.
declare(strict_types=1);
Ого
Батя, спасибо тебе за просвещение начинающих разработчиков. ❤
Сергей у Laravel тоже есть ORM, называется Eloquent и половинна кишков под капотом Laravel от Symphony собственно. Я PHP разработчик, начинал с Udemy и Laravel, с ним и остался. Сейчас работаю в компании юзающей два языка и да - согласен, Ruby это боль для тех ктол не привык, ео если начнешь привыкать - поймешь его прелесть. Да не читаем с ходу, но зато там столько конвенций, делающих код стандартным во всех приложениях. Что мне не нравится в Rails и почему я не очень хочу с ним продолжать а дпльше идти по PHP - слишком высокоуровневый фреймворк. Все что происходит оно не очевидно и для новичка пришедшего из Laravel кажется магией. Да, ничего не читается и непонятно куда что уходит. Но тут надо сесть и изучить, прям конкретно. Rails это такая тема в которой нужно знать конкретно RUby и конкретно Rails. Нельзя прийти с C# с 10 летним опытом и за день понять Rails не читая с нуля доки. Спасибо за видео! Всем любовь и мирного неба над головой.
$ перед переменной -- это дополнительная мотивация кодеру, чтобы он быстрее сделал проект и получил деньги))
😂👍
Судя по вакансиям могу сказать что php как и Java - не умрёт никогда )
Имеешь ввиду количество вакансий?)
нет ничего вечного...
пхп тоже не вечен...
@@hallgamal6302 ну тогда и пайтон не вечер...
Работаю в банке, работал еще в 2х финтехах. На пхп. Интеграция с другими платежными системами, с кучей внешних систем и так далее. Дохрена всего. Больше всего работаю с симфони. Это порт джавовского спринга) А еще в современном пхп всё отлично поддерживается и есть супер строгая нулобезопасная типизация. К тому же она еще и статичная получается с версии 7.4. А с 8 версии вообще есть енамы.
Самый добрый дядька в интернете
Наоборот наличие долларов это преимущество PHP. И стрелочки довольно красиво.
Классное видео, php forever))
Обращение к методам/свойствам объекта через стрелку не является чем-то необычным для си-подобных языков. В тех же С++ и Perl тоже используется стрелка в ООП, а в С - для обращения к полям структуры. Так что стрелка в PHP - это тоже скорее всего влияние Perl'a.
Офигенный язык PHP на самом деле. Тем более после изучения JavaScript вообще прогулкой кажется
Как программист с 10 летним стажем у web разработке php использую в 90% случаях, остальные node.js если нужна асинхронность, самый простой пример это чаты, или например нужно выдавать результат во время работы скрипта, например выгружаешь огромный файл, и ты выдаёшь % обработки, и да, на php тоже можно такое, но node подходит гораздо лучше.
Вы что же используете те же инструменты что и 10 лет назад? Веб разработка уже давно на 90% какой нибудь javascript фреймворк типа react или vue, остальное это апи и бекенд и совсем необязательно на php.
@SergeyNemchinsiy Щодо Пайтона, нещодавно я пройшов невеличкий курс з пайтона, після 10 років програмування на PHP - я сидів і хапався за голову кожен раз коли треба граится відступами, коли нужно імпортувати купу бібліотек кожен раз коли тобі вони потрібні, коли бачив що всередині класу можна легко використати змінну яку визначили в клієнтському коді і ніяк не передавали всередину, коли "інкапсуляція" працює тільки для IDE, а за бажанням можна просто отримати доступ до чого завгодно всередині класу, коли немає нормальних ітераторів, а для того щоб зробити зручну ітерацію по даним треба попередньо "погратися" а щє дуже незручно коли область видимості функції об класу пересікається з областю видимості клієнтського коду через що можуть бути проблеми із однаковими іменами змінних !!!! ... Я згоден що з пайтоном можна в машин-лернінг, або у якийсь аналіз даних, але бляха-муха... після такого пафосного "Пайтон - супер-пупер мова програмування за допомогою якої можна робити шо завгодно, а щє закиди по типу принт можна зробити за один рядок коду, або переприсвоїти змінні одна одній теж за одну операцію" після занурення в пайтон в мене склалося стійке враження що мені на PHP багато чого робиться і працює набагато зручніше і пишеться коротше та швидше... Не знаю може я щє недостатньо занурився в бібліотеки та фреймворки, але на даному етапі я відчуваю що тупо втратив час та міг би вивчити за ці два місяці щось більш корисне.
І як було приємно повернутися до фігурних дужок і крапки з комою і змінних із доларом :D
Главное в этой жизни найти того, кто будет вас любить так же сильно, как Сергей Немчинский любит Python, если вы понимаете о чем я))) Более часто упоминаемого языка на этом канале, наверно, нет))
Це 100%, здається мені, що Сергій ще 1000 разів згадає про Python і комюніті прийме рішення "пора згортатися", та закриють підтримку Python))))
Отраслевой стандарт - это Symfony. А Laravel - это стандарт для формошлёпства)
Ну и да, джанго и рельсам до Laravel как до луны, если мы про функционал.
Ну и далее про симфу тоже дичь. Доктрина - это ни разу не часть Symfony. А то что есть пакет/бандл для её интеграции не делает это одним и тем же. Это примерно как сказать, что хибернейт часть спринга. Или TypeORM часть метеора или ангулара.
Ну и про пых тоже, странно в 2023ем называть пых, у которого ещё более 5ти лет назад появилась опция строгой статической контрактной типизации называть языком с динамической))) Он по части строгости, при желании, уделывает ту же жабу в пух и прах, благо в нём и алгебраические типы есть и T означает T, а не null или Object (привет NPE!). И это мы про стат. анализ ещё не начали говорить, где можно указать типы, вида "не пустая строка в нижнем регистре".
Короче, начало для новичков - это понятно. А дальше уже отсебятина, которая основана лишь на предположениях и домыслах. Видно что Сергей давно отстал от трендов и оценивает язык по версии 5-10 летней давности.
P.S. Ещё отдельно хочу придраться к тому, что автор даже поленился чуть-чуть подумать на тему причинно-следственных связей. Например, если вместо стрелочек будут точки, то на что менять оператор статического доступа к методу? Там тоже два символа. Или на что менять тогда оператор конкатенации? На плюсик как в JS? Чтобы от перемены мест слагаемых сумма менялась?) Не, понятно что автор как угодно может говорить: "нравится" или "не нравится". Но как бы тут претензия к попытке объективного суждения, а фактически неоспоримые плюсы языка преподносятся как минусы, что звучит откровенно глупо и на уровне какого-нибудь Хауди-Хо. Уж сорян.
P.P.S. Ну и наброс на джаву: В PHP есть кооперативная многозадачность из коробки, а в Java через костыли и Project Loom. В PHP есть алгебраические типы, поддерживающие LSP. В Java её можно добиться, взяв Ceylon или Scala (т.е. взяв любой другой язык, кроме Java, kekw). В PHP есть пакетеный менеджер, решающий все возможные конфликты версий. В Java придётся пройти 10 кругов ада, чтобы подружить две разные версии одного вендора так, чтобы проект заработал (ибо один вендор требует одну версию, а другой - другую. Это частое явление). В PHP зависимости опциональные и можно реализовывать фектори, основывающиеся на опциональных контрактах/интерфейсах, а в Java будь добр захардкодить зависимость в classmap. В PHP за счёт метапрограммироования и интроспекции языка можно в пол пинка реализовать high-order messaging и прочие функциональные штуки (каррирование, частичное применение), а в Java или байт-код патчить (здравствуй Lombok) или никак (ибо рефлексия - максимум что доступно). В PHP можно инлайнить сишный код (или даже LLVM IR), а в Java будь добр собери отдельную обвязку для JNI. Ну и т.д., так можно долго очень)))
Огромное спасибо за видео!
Харизматичный бро)))
Небольшой плюс от $ в начале переменной - это явно различает что это переменная, а не константа.
Ну и можно реализовать конструкции вроде динамического объявления или обращения к переменным
$a = 'var';
$var = 1;
print $$a;
выведет 1, не лучшая практика, но как элемент в какой-нибудь хитровложенной рекурсивной функции вполне помогает.
А адресация точками или стрелочками это чистая вкусовщина на основе привычки, лично мне наоборот привычнее поставить стрелочку, а, для избежания длинной стоки, каждую стрелочку делать с новой строки вроде
$object->getSubObject()
->getSubObjectProperty()
->getValue()
Ну и стандарты с возможностью установить строгую типизацию тоже язык сильно улучшило
Если раньше прокатывала конструкция вида
public function do_something($input) {
...
...
...
return true;
}
То сейчас такое на любом ревью завернут на переоформление в вид
public function doSomething(string $input): bool {
...
...
...
return true;
}
как результат, попытка передать что-то кроме строки, выдаст ошибку, как и возвращение чего-то кроме true/false
: bool ну и шляпа - я понимаю что это комуто нужно и я рос в php с того века - а зачем???? приведи типизацию переменной если нужно. не помню чтоб у меня был баг - возможно я слишком медленно пишу)
Спасибо, Немчинский. Благодаря тебе, у меня восстановился интерес к программированию, потому что в школе он был, но такой себе(из-за российского обучения), а сейчас он начинает восстанавливается. Объяснение хорошее, бех лишней воды. То, что нужно, чтобы заинтересовать людей.
без*
Да ладно, если ты ща начнешь учиться этому то выучишься через год-два но норм джуна и короче поймешь что рынок перегрет...
при чем тут российское обучение если ты вместо того что бы учиться смотришь это бесполезное видео
@@NeverBrokeAgainx бесполезное для нас, а серёжа бабки получает)
2:20 - Насчёт операторов адрессации "." и "->". В С++ есть и то, и другое. "." - это когда объект (структура) статические, а "->" - когда динамические.
Теперь мне понятно, почему, когда я пыталась учить Руби в качестве первого языка, я не поняла ни фига (и бросила) и почему теперь, когда я изучаю PHP, мне все понятно и в кайф.:)
Спасибо.Познавательно))
Спасибо за видео про ПХП!
🙂
Спасибо за видео 🔥
Писал 5 лет на пхп. Приятный синтаксис, читабельный. Вменяемое ООП. Как первый язык - отлично. Не хватает дженериков и многопоточности (раз уж многие используют пхп в том числе для бэкенда).
Угу. Правда не стоит забывать, что если в PHP не хватает скорости или функционала, то всегда можно написать своё расширение на C++ :)
Много лет назад тестировал эту фичу и остался доволен. Та же многопоточность вроде бы доступна через расширение 🤔
Проблема дженериков частично решается через DocBlock
Будет фурор когда видео начнётся со слов - "Здравствуйте, меня больше не зовут Сергей Немчинский!")
What is dead may never die! 🐘
Valar morgulis
I am not ambidextrous. I do not enjoy static typing, and objects animate my mind's eye. But I have come to appreciate the fact that others illuminate their creativity with just as much intensity as I do mine, using functional programming constraints and explicitly spelled out types.
As long as I never have to soil my Ruby with type hints or write all front-end code in TypeScript, I can so happily coexist with those who adore Go or can't stand JavaScript. Vive la différence!
Делал перенос приложения с asp + vba на php. Отлично подошел для сравнимо простой конвертации. проект занял 2 месяца.
Пишу на symfony, в восторге от фреймворка и его инструментов! А если еще умешь в golang то получается ядреная штука)!
Что общего у Symfony и Go? Go это что-то новое от гугла, про которое со временем забудут. Зачем на него вообще время тратить?
@@igoraleksandrovich1498 я разве написал что у них есть что то общее (постановка вопроса даже весьма странная, один фреймворк дргой просто язык)? Я про то, что одно может дополнить другое если требуется решить проблему н-р "бутылочного горлышка" в контексте производительности
Большое спасибо за обзор языка и ваши видео!
и вам спасибо!
Про энтерпрайз интересно. А стрелочки ван лав. Спасибо
На счёт динамической типизации - на php она включена по умолчаю, но по желанию легко включается строгая типизация, так что к минусам этот факт относить нельзя. Ну и я уже не помню, когда последний раз встречал проекты, где бы использовали динамическую типизацию
strict_types работает только для скалярных типов, если вы об этом
Коли ви говорили про фреймворки я дуже сподівалася що ви згадаєте Zend Framework
А на нових версіях пхп можна писати використовуючи строгу типізацію :)
Коли її почали завозити - мені пхп почав більше подобатися.
Так він давно вже не Zend Framework, а Laminas. Я трохи використовував Zend 1.5, важкуватий, але мені він подобався, особливо робота з формами. У 2021 спробував АРІ Tools з Laminas скористатися, але, на жаль, не вийшло. На етапі встановлення вивалило купу несумісності пакунків, я подовбався з годину і кинув.
Когда-то писали на Perl, потом PHP, сейчас Python - стилистика python с пробелами и табуляциями - на мой взгляд самая удобная, без лишнего. Но это вопрос вкусовщины.
Что хорошего в php - это, как было сказано - можно писать сразу сайт на голом php, на пайтоне нужен минимум какой нибудь flask.
Сильная сторона Пайтона - я вот десктоп приложение (с окошками) для Линукс пишу и сопровождаю уже много лет и он отлично справляется (pyqt)
Как разработчик PHP с 3-ех летним стажем скажу что PHP отлично подходит для e-commerce, но почему то всегда суют в interprise (банки, Авито и т.д.). Все бы ничего php отлично работает, кучу библиотек и можно смириться с отсутствием женериков и строгой типизации, ну или нет down и up кастов. Но что меня больше всего раздражает, это синхронщина. Это отлично работает, пока дело не дойдет до вебсокетов или задач в крон. В целом крон на laravel к примеру это кажется отдельный поток с do while , но на мой взгляд на яве асинхронщина сделана удобнее и понятнее. В целом если честно немного пожалел что начал свою карьеру с php а не с java, потому что с php тяжело уйти по причине того, что ЗП на php вроде бы как поменьше, но не настолько меньше чтобы учить java/c# и потом мучиться с синтаксисом, контролем переменных и структурами данных (в яве для объектов есть коллекци или hasMap ) в php массив по сути это HashMap как в яве и работает он одинаково стабильно и быстро что на числах, что на строках, что на объектах... Нет деревьев, но ни разу не видел чтобы хоть кто-то делал дерево в яве ... В общем , для старта топ язык так скажем. А еще плюс в том, что без работы Вы точно не останетесь
в ПХП много чего нет того что в Яве. Особенно, что касается ООП, оверлоады методов и конструкторов и т.п. Одно из больших преимуществ Явы, на мой взгляд, это компилятор. Но я все одно бросил Яву из-за её многословности.
А для каких задач нужен такой асинхрон, с которым не справится очередь в месенжере? Это не троллинг, реально интересно. Например у меня типичная задача "зарядить 50 писем на отправку", так я их просто пихаю в очередь, пользователю отдаю ответ "письма поставлены на отправку" и забыл о проблеме. Дальше уже крон или что другое как раз асинхронно эту задачу выполняет. А для чего ещё надо?
@@GenaTolstijмне кажется,что люди часто путают многозадачность во фронте где при загрузке страницы асинхрон ускоряет загрузку и в бекенде где многозадачность это просто очередь)
@@GenaTolstij , да в целом то да и редис справится. Просто нужно понимать что это не наливное решение языка, а доп прослойка.
@@cranebird1467 да, забыл про перегрузку =) но перегрузка контроллеров это такое себе как мне кажется, слышал что это плохая практика
Интересная информация спасибо!
PHP 5.6-вот был простой язык.)
В 8 версии это уже не изи-язык.
Мне нравится как раз максимальная понятность языка.
ага на 56 такого навидался)) а что с 8 не так? я както и не понял разницы - как обычно чтото убрали/добавили - не 7й же - хуже точно не стало))
@@80689248440 дэк, бро) чего там навидываться, если тот язык был для примитивных веб-сайтов и Вордпресса)
Золотые времена) Самый понятный код, ну или я к шарпам привык, хз
Наоборот PHP 8 избавился от лишнего мусора.
А типа на 8 нельзя писать так же как на 5.6 :) Если очень захотеть, то на нем и как на 4 можно писать за редким исключением (либа мускула стала другой)
@@unicoxr5tj417 да делфисты код писали и свалили))))
Огромное спасибо вам за то, что даже после 24 февраля, после начала войны вас всё ещё зовут Сергей Немченский!
Слава Україні!
Героям слава
@@mexanikilya_ Ты долбик. Путин же молодец - помни!
Спасибо за видео.
Пожалуйста) Какие еще темы вам интересны?
Всякий раз, когда узнаю о вас что-то новое, все больше восхищаюсь! Спасибо за ролик.
Спасибо вам! )
Интересно, но нах политику разводить не понятно,
он мог так же нмций танк изобразить с чёрным крестом в уголке,
если говоришь о программировании, то и говори о нём, а не о своей оирентации
@@ГардамиранСвами от у тебе спитати він забув. А те що тобі і тобі подібним припікає якраз і є ознакою того, що Сергій робить все вірно.
Сергей, вы упомянули, что у Symfony есть своя ORM, но Laravel тоже пользует ORM - Eloquent. В чем же преимущество Symfony'ского варианта если вы его отдельно выделили?
Тут стоит смотреть в сторону холивара "ActiveRecord vs Data Mapper". Плюс доктрине, которая в симфе, симфа то не особо и нужна - оно и само умеет быть отдельным ORM.
Например перелазя с yii2 с ее AR на симфу я с доктрины поначалу очень сильно плевался, не понимая какого черта у меня запросы отдельно, данные отдельно, а как это всё поженить вообще непонятно и почему я в entity не могу сервис заинжектить. Потом поумнел - попустило :)
@@GenaTolstij Учитывая, что я новичок - про "ActiveRecord vs Data Mapper" и доктрину я не шарю - поэтому приму так, что для симфы в принципе ORM не нужна, так как он сам ORM, а свой ORM лучше встроенного😁
@@sani4051992 , интересная логика... Учитывая что по умолчанию кроме доктрины других путей общения с базами у симфы не предусмотрено.
@@GenaTolstij Доктрина сама і є окремою ОРМ, вона була ще до появи другої Сімфоні. Насправді з Сімфоні можна використовувати будь яку ОРМ, навіть той самий Елокуент, якщо є бажання.
@@sani4051992 не робіть помилкових висновків, бо з часом вони у вашій свідомості закарбуються як "істина" і буде дуже важко їх позбутися, а заважатимуть вони дуже сильно. Просто розберіться що це за патерни актив рекорд та дата мапер. Почитайте Фаулера, він роз'яснює.
Где можно глянуть хорошие уроки для PHP? Хочу начать учить пхп вот смотрю разные уроки но хочу увидеть совет от вас
Що особисто мені не подобається у ПХП:
- Погана можливість підставляти щось у строки. Можно підставити лише змінну: "bla bla {$this->foo}". Тут у JS/TS набагато краще: `bla bla bla ${any_expression}`. Можно підставляти константи, вирази тощо.
- Нема дженериків. Були б хоча б типовані масиви. Є лише костиль PHPDoc, но то таке, ти описав, массив ЧОГО функція має отримати, написав док, а потім змінив код, а ДОК змінити забув.
- Погане оголошення локальних змінних. Причому властивості класів можно оголосити нормально з типом. Ну так. це не є проблема, бо в нас функції до 100 строк, можно пойняти, але ні, це погано. Дайте мені ключеве слово для оголошення локальної змінної, дайте мені вказати її тип.
- "text" . (Any expression) . "Text"; Хотя лучше через sprintf в этом случае завернуть.
- отучиться передавать в функции массивы и юзать коллекции и dto.
- при объявлении переменной просто присвоить ей то, что в ней должно быть. Всё. Если вдруг в процессе переменная из массива станет строкой - Иде ругнет. Но вообще да, в простых переменных строгую типизацию можно бы и завезти.
@@GenaTolstij
- "text" . (Any expression) . "text" - ну зрозуміло, але треба слідкувати, якими лапками ті відкрив строку, наприклад якщо раніше використовувалась підстановка змінної, я маю на указі "bla bla {$foo} bla " . (MyClass::CONST) . ' bla bla'. Й не так зручно контролювати пробіли перед або після виразу. Це просто відсутність приємного цукру.
- це фактично відмовитись від масивів. Навіть якщо забути про швидкодію, ну щоб передати масив строк городити якусь сутність ну таке собі.
- й типізацію й оголошення:
$foo = 1;
// ...
$foo = 2;
// ...
func($foo);
Планую передати 1, бо насправді код мав бути таким:
let foo: number = 1;
// ...
let foo: number = 2; // помилка одразу
//
func(foo);
@@adicthreex3530 , смотри
- По поводу кавычек :) У меня это уже до автоматизма доведено :) Я двойные в коде не использую никогда. Хотя, справедливости ради, "bla bla bla $foo blablabla" подставит значение переменной, а вот 'bla bla bla $foo blablabla' выведет строку в неизменном виде. В ПХП одинарные, двойные кавычки это разные кавычки. Но лично я предпочитаю конкатинацию, как просто универсальное решение, иногда sprintf, но его люблю, честно, меньше.
- в пхп нет всех этих let, var, const и прочей ерунды и, как по мне, это очень правильно. зачем? переменная сетапится первым же присвоением в неё значения, если ты обратился к несуществующей переменной - получаешь notice. И не надо следить инициализирована переменная, или нет, перед присвоением ей значения. Тупо проще ИМХО. А вот если переменная в процессе работы поменяет свой тип - ИДЕшка, насколько помню, это подсветить должна и ругнуть. Но ели уж так хочешь указать строго тип:
$i = (int)1; или $a = (string)'Ababa'; Пожалуйста. Это же можно делать при передаче переменной в функцию, то есть func((string)$a) и у тебя всегда приведёт к нужному типу, конечно если то, что во входящей переменной, так умеет.
И опять же, пых это тебе не JS, когда 1+'1' может быть 2, а может быть 11 (я там не помню при каких условиях оно клеит, а при каких суммирует), в пыхе для конката используется точка, для сложения - плюс, всё, и никакой путаницы.
@@GenaTolstij const є. У більшості мов, у тому числі "дорослих", на яких пишуть щось велике є окрема інструкція оголошення змінної, та інструкція оголошення з можливим присвоюванням відрізняється від інструкції присвоювання. У PHP це одна інструкція й це погано. Наприклад:
$counter = 9;
for ($counter = 1; $counter < 4; $counter ++) {}
var_dump($counter );
Ми у першій строчці оголосили змінну, а у другій у першому виразі циклу for, де "$counter = 1" - це ми намагаємося ввести нову змінну або присвоїти щось у стару? А що буде передано у var_dump? Просто якщо була б явна інструкція того, що ми у циклі оголошуємо змінну - ми б отримали миттєву помилку у час написання (теоретично, бо в мові може бути затемнення). Ну й VSCode нічого не каже про "$a = 0; $a = true;" бо це легальний синтаксіс.
Хотелось услышать мнение про Lazarus, его конкурентов и тп.
Почему пхп плохо, ответ профессионала: существует несколько часто упоминаемых фреймворков: Zend, Laravel, Symfony, Yii, CakePhp, CodeIgniter
Ещё есть какие-то другие фреймворки, типа всякие ответвления от них. Есть легаси-фреймворки, самописы, есть Битрикс, который занимает долю рынка.
И в каждой вакансии эти фреймворки упоминаются в рамдомном порядке. Это не считая разнящихся требований по всяким базам и кэшам. Это не считая каких-то «весомых» библиотек, типа JSON-API, SWAGGER и тп, которые по своим мануалам сопоставимы с мануалами по самим фреймворкам.
Хоть подходы в фреймворках и совпадают, это не отменяет факта, что тебе в любом случае нужно будет помимо работы всегда держать под рукой открытую документацию, а задачи выходящие за рамки документации - это ещё та песня, когда ты лезешь в кишки этих решений и смотришь, как натянуть сову на глобус.
В итоге работа по этому направлению сопряжена с постоянной мозгодрочью и нервяком, а компетенция не растет, ибо подобное распыление на всякие мелочи в итоге не даёт никакого весомого профита в проф плане.
А какое направление вы бы тогда посоветовали
@@baldislavep00pczynski68 в пхп точно не лезть. Дерьмовый стек, а на собеседовании на тебя смотрят на говно даже с 10+ годами опыта. Я бы вообще посоветовал в программирование не лезть вообще. Неоправданно раскрученная херня инфоцыганства про чудесные истории успеха.
@@baldislavep00pczynski68 1C нормальная разработка, потому что все понятно и удобная отладка.
пишите код для себя, для души, на выбранном одном фреймворке - и не надо будет париться со всякими легаси, чужими самописами и прочей радномной ерундой ))
@@TREVOGA Полностью согласен, что программирование сегодня тема не для денег. Работа руками или ногами приносит денег зачастую не меньше, думает сегодня ИИ. Если только для себя, вордпресс поковырять то пыха незаменима.
меня в php удивило не столько -> , сколько объединение строк через точку
Кстати, C-подобная конструкция $a.='bla-bla-bla'; там тоже работает. И в JS тоже (с поправкой на синтаксис)
Сам пользуюсь, но ни разу подобного в примерах не видел.
Враховуючи початкову концепцію відсутності типізації воно має сенс, '1' . '1' = '11', '1' + '1' = '2', хоча я не впевнен, що воно так спрацює, но крапка як окремий оператор краще, коли ти не знаешь, якого типу в тебе змінні.
@@adicthreex3530кстати да. Я как-то об этом даже и не думал. Ps должно сработать именно так, как написали 👍
@@postoronny треба просто уважно читати документацію по РНР, все там є.
@@woodzimierz9621 , да!
Только это - не мой родной язык, я им пользуюсь изредка...
В PHP8 динамическая типизация уже не очень динамическая, все гораздо строже. PHP начиная с 7 версии все больше движется к строгой типизации и думаю в версии 9/10 уже мало чем будет отличаться от того же Java
Да, я жду не дождусь когда в пыхе можно будет указывать типы для переменных а не через phpdoc
@@awenn2015 Добро пожловать в 2023 год. В PHP можно указывать типы переменных начиная с версии 7. То есть, уже лет 8 как
@@awenn2015 давно уже можно, с php 7
public function (?int $a): ?string
в аннотациях только тип массива,
в php 8 и типы массивов можно пихать туда.
отраслевой стандарт не Laravel, а скорее Symfony. Да и вообще вклад Symfony в PHP переоценить сложно.
даже больше скажу: большая часть функционала laravel основана на symfony.
Они оба, по сути, отраслевые стандарты. Симфа в проектах посерьёзнее, ларка - где проще. Главные их конкуренты, zend и yii соответственно, немного упокоились с миром :(
Ох уж эти доллары=) Многие думают что доллары и стрелочки это что-то страшное, но я вас уверяю, несколько недель практики и вы их вообще перестанете замечать) Но вот читать другой язык, например яву, станет чуть сложнее) Так как $/this/static/self и т.п. помогают ориентироваться в коде быстрее. Также многие говорят о типизации, но уже давно можно обезопасить себя хинтами. Да, в PHP не хватает определенных структур данных, по типу коллекций и т.п. с коробки, это не удобно. Так как подобные штуки приходится писать самому. Но в контексте PHP, это как правило делается очень редко и для этого существуют сторонние библиотеки, интерфейсы от разработчика языка и т.п.
По поводу знака ->, в С и С++ он тоже юзается как указатель на поля обьектов/структур. По-моему к методам тоже так можно обращаться, правда уже не вспомню точно))
Первая ассоциация в этом видео с -> была как раз на указатели в C/C++ 😁
Сергію, дивлюсь вас вже кілька років, і от маю цікаве як для мене питання. А чому ви ніколи не говорите про мову програмування VisualBasic? Не в тренді чи як? Прошу надати відповідь. Дякую
Синтаксис PHP как по мне прекрасен. Единственное печалит это то, что из коробки нет мультипоточности, да и в целом PHP намного медленнее того же GO, а так всё збс
Стрелочки вместо точек появились, потому что точки были уже заняты в конкатенации строк. На заре язык был настолько прост, что ООП в нём даже не планировалось.
Многие обсирают пхп не понимая его историю и почему сделано так а не иначе
Когда Бог писал код Вселенной, то сделал это на Java. И увидел Он, что это хорошо.
Потом заметил скучающего, одинокого Адама и написал код для Евы на Perl-e. И ужаснулся Адам и с проклятиями убежал вглубь Эдемского сада, где написал на PHP pornhub.
Нет уже ни Адама, ни Евы, а порнхаб есть. PHP - write once, run forever.
PHP is best of the best!
касательно интернет магазинов, лидирующие решения тоже на PHP - Magento, Prestashop, OpenCart
И почемуто они все на пыхе!!! ДА, потому что, она топовая в своеи сигменте!
@@Dzystas даже можно сказать так - php единственный существующий вэб ориентированный язык.
По мне лендинг и пару страниц - это все же статика + редактор :-) Ну а типизацию можно задавать, с 7 вроде :-)
13:50 практически мои эмоции когда с Unity пересел на Unreal
А вот такой вопрос 😃 Сергей в трасляциях при ответе на вопрос о зарплатах програмистов на разных языках отвечал что плюс минус одинаково. То есть если я правильно понимаю то JS и PHP программист будут зарабатывать схожие суммы?
Это странно, т.к. js и php идут рука об руку. Аналога js для динамики на сайте не существует. А php это серверный язык. Если ты про ноду, то пхп чувствует себя попроще т.к. не такая конкуренция и работы больше на пх.
Мы уже пару лет как перешли на строгую типизацию в компании. Думаю, что эта тема уже не актуальна в 2023 году.
Согласен) Типизация рулит, все понятно, что ожидать. Скоро в пыхе по умолчанию будет строгая типизация)
@@super0leg вообще не скоро (а может даже и никогда из-за особенностей внутренних реализаций), ибо нет возможности типизировать списки и прочие вещи, generic-и туда же, локальные переменные. Приходится пользоваться аннотациями + статический анализатор. Хоть и на текущий момент везде использую строгую типизацию, но не стоит забывать что это накладывает небольшой оверхед в рантайме, ибо нам в рантайме всегда приходится проверять корректность типов переменных.
В Netbeans переменные с долларом подсвечиваются отдельно и это чудо-чудное, диво-дивное)
Я: пишу приложение под винду на пайтоне и дико горжусь
Сергей: не делайте так, для этого есть С#
Я: 🌚
RUBY? А как насчет APL по читабельности?
Кстати, такому почитатателю Python, почемы бы не просветить народ о Majo?
Java, я же на эту цацку-песку от Sun Microsystem даже сертификат имею, экзамен сдал хотя нихрена никогда не работал. Но, индульгенция крутая, HR уважали всегда. Там такая бумага для вставляние в рамочку на стенке, со всеми ободками. :)
Symfony сводит все хейты на нет.
Так как там реальный ООП, разделение на слоев, репозитории, сервисы всё в нём есть.
Там даже есть больше чем в хваленом Спринге
В перле кстати префиксы у переменных были вполне осмысленны. $ - скаляр, @ - массив, % - хэш.
В пыху жэ оно либо бездумно скопипащено с перла, либо, что вероятнее, взято с баша.
Не, точно с перла. Лердорф же на перле шаблонизатор писал, а потом из-за затупов переписал на си.
Ну в хороших компаниях без строгой типизации практически не пишут. Ну исключение что для простых переменных нет. А так тайпт хинты, свойства более менее покрывают нужды. Плюс есть статический анализатор, тот же phpstan. Сейчас без него проекты не заводим. в php 8.2 уже есть пометка класса как ридонли, что помогает делать имутабельные классы. Ну и про цены тут тоже сильно зависит от проектов. У нас обычно по несколько миллионов рублей разработка. Но я давно не делал уже обычных сайтов. Как правило это корпоративные CRM. Но нужно понимать что нормальные проекты как правило еще включат по мимо стат анализа и линтеров еще автотестирование. Как правило юнит тесты и это все сказывается на цене, но и повышает качество кода.
про пайтон на 100% согласен, для меня его отступы - это прям ощутимая боль, аж передергивает
про читабельность кода в зависимости от языка программирования никогда когда не задумывался, но после слов про то, что PHP - один из самых легко читаемых, задумался и пришел к выводу, что таки да
про симфони - сейчас это скорее "фреймворк для фреймворков", любая его часть способна работать сама по себе, в итоге он используется в том же Laravel, Yii2(который почему-то до сих пор цветет и пахнет в СНГ, хотя морально устарел еще лет 5 назад, ибо эдакий антиSOLID), Drupal начиная с 8 версии, и при этом сам симфони как самостоятельный фреймворк, на сколько знаю, используется относительно редко
про недостатки - их много, но как по мне, его самый главный недостаток - полный бардак с аргументами в функциях/методах - можно глянуть на список аргументов, например, для array_map и array_filter(первое что в голову пришло), и такое тут на каждом шагу, в итоге я примерно за 15 лет постоянной работы с ним, никак не могу запомнить порядок аргументов, даже в самых часто используемых функциях, чего не наблюдал за собой ни в одном другом языке программирования, но это связано с тем, что PHP развивается еще с 90х годов и несет в себе очень много легаси, а с остальными недостатками вполне можно мириться/привыкнуть
про плюсы - почти все что требуется для работы с вебом - есть и работает из коробки, либо в виде модулей для самого PHP, а так же наличие самого дешевого хостинга для маленьких PHP проектов или CMS, что делает его очень привлекательным для бизнеса
про CMS - на других языках - их полно, но до первой тройки CMS\CMF на PHP им прям очень далеко, разве что джанго близко подошел
Є таке питання: хочу зробити веб сайт з базою даних яка в майбутньому може мати терабайти. має бути все швидко і наватаження в майбутньому може бути сотні мільйонів користувачів в місяць. Також сайт має бути синхронізований з додатками для айфон та андроід! Підкажіть будь ласка які технології мені вибрати?
База вот что будет узкое горлышко бутылики. А пыха справится с задачей на ура ей не впервой.
Во, другое дело! :)
Пацанские цитаты подъехали в конце видео 🐺
ну на python-е не только веб фреймворки. я вроде где-то слышал, что python можно подключить к вебу и использовать print для вывода на вебсайт прям как echo в Пхп. но может и ошибаюсь.
Можна і не тільки на пайтоні, але те як ти написав, то повна маячня.
@@woodzimierz9621не очень понял. ну ладно.
Какие языки программирования изучать чтобы развиваться в VR/AR?
C++, C#
Лайк за недовольство пробелами в пайтоне. А мне также ещё не нравится отсутствие точки с запятой в питоне. Реально напрягает эти две вещи.
🙂
Обожаю данные особенности.
Пишу на питоне, обычно использую VS Code, вообще никогда не сталкивался с проблемами пробелов. Я даже понять не могу эти ваши проблемы.
@@aurceive, потому что скорее всего Питон Ваш первый ЯП. А когда Вы писали бы на протяжении минимум 8-12 лет на СИ-синтаксисе, то про пробелы и отсутствие точек с запятой сказали бы:" Фу, что это за дичь?".
@@Zyozikexclusive_ZX Вообще, в питоне можно точки с запятыми ставить, если очень хочется.
@@aurceive , это я знаю. И про скобочки. И я так первое время и писал код ровно до тех пор пока не понял, что Си-Синтаксис из меня не выйдет наверное никогда.)))
Мне тоже нравился PHP и я на нем писал, классный язык.
Сколько себя помню, столько сообщество программистов хоронит PHP. Признаться, пару раз я уже думал что всё, точно кранты языку. Но нет, живуч.
Знаки $ в PHP для того, щоб нагадувати розробнику заради чого він все це пише))
у меня другой вопрос к знатокам. на сколько актуальны сейчас perl и ruby и где они применяются? на изучение выбрал для себя java как наиболее актуальный и универсальный язык. на первый взгляд пока. не сказал бы что его учить сложно, наоборот. но из минусов отметил его вариативность во благо сокращения кода. например a=a+1 то же самое что a++. это вынуждает запоминать ещё что-то, хотя бы ради того что придётся читать чужой код. ну и есть другие примеры. претензии пока только к этому. по моим наблюдениям ещё не в тему. си шарп очень похож на джава, что в плюс, если хотим писать нативно под винду. наверняка есть специальные трансляторы, которые переводят код из джава в си в решётку или наоборот. виндой я не пользуюсь, но. расстроил монструозный синтаксис языка shell, который используется по умолчанию в линукс. для командной строки я бы предочёл интерпретатор на другом языке. опять таки. это дело вкуса. можно привыкнуть к синтаксису
Ну типизации достаточно завезли в последних версиях PHP. Параметры, поля классов, результаты функции уже можно типизировать (а можно и не типизировать). Может и завезут в 9-ку типизацию переменных
сегодня умножал строку на целое и получил тайп эррор))
Да, поскорей бы, но думаю это будет сложно реализовать под капотом
Доброго времени суток, друзья. У меня есть вопросик по поводу конспектирования материала. Какой примерно процент информации записывать. И все в этом роде только идентично с английским, заранее спасибо!!!!
Понимаю если бы в минусы поместил среду выполнения, что php "рожден чтобы умирать", что нет нормальной паралелльности. Может быть что-то еще. К стрелочкам придраться это конечно круто...
PHP со временем становится очень похожим на Java. К сожалению на PHP сейчас пишутся не только сайты, но и целые Enterprise системы, но вот непонятно зачем.
Подскажи, для новичка (абсолютного) в программировании лучше на php остановится или на с#?
@@ei2292 хороший вопрос, если у вас цель заниматься исключительно вебом то можно остановится на PHP, и ознакомится с такими фреймворка и как Symfony или Laravel. Если вы хотите именно освоить программирование в более широком смысле C# будет лучше. Хотя для начала может быть есть смысл посмотреть на Python. Какие у вас цели? Какого типа задачи вы бы хотели бы решать?
Працюю на enterprise. З приводу типізації, гарною практикою є ставити строгу типізацію по проекту. І немає проблем. Не розказав про відсутність многопоточності і не дивлячись на апдейти він все таки повільний(
на питоне есть CMS и не одна, сейчас самая популярная Wagtail, даже делал пару проектов на ней.
У питоновских CMS не получилось отжать рынок у WP
Когда PHP был дерьмовым и популярным одновременно он собрал сообщество, которое создало WP. Этот продукт теперь отбрасывает тень на весь PHP.
І ні в кого не вийде, бо підтримка РНР на сервері, то маст хев для будь якого провайдера
@@woodzimierz9621 EC2 не имеет такого ;-)
@@user-ch76tcye4vvuu8 Та невже, а може треба уважно читати, що у документації амазон пише? За великим рахунком на амазоні є і можна все.
10:40 Пишу на Python около 3 лет. Никакой разницы с фигурными скобками не замечал , всё равно абсолютно во всех языках принято делать отступы после начала нового блока кода, ведь его тогда легче читать. Объясните, кто как понимает, будет интересно почитать
у інших мовах зайві/недостатні пробіли не викликатимуть помилок, які складно шукати.
@@woodzimierz9621 пробіл видно очима одразу, бо весь код здвинутий вбік. Фігурну дужку на відміну від цього можна і не помітити одразу. Це скоріше питання смаку, але ніяк не проблема мови програмування
Для мене правильні пробіли краще ніж фігурні дужки. Два зайці одним пострілом: і правилне форматування і відсутність зайвих символів (фігурних дужок). Так само як відсутність стрілки краще ніж її наявність...відсутність фігурних дужок краще ніж їх наявність.
Це ще можна назвати "вкусовщина", але точно не мінус як говорить Пан Сергій в кожному відео)
@@VladKochetov Насправді? Не завжди. Я на пайтоні писав доволі складні застосунки, тому кажу зі свого досвіду, якщо велика кількість рядків коду, а зсув відбувся вище за межами екрану, то це та ще веселуха шукати його.
@@woodzimierz9621 якщо в вас проблема з читанням коду - то це поганий код або архітектура