За последние 24 часа нас посетили 17569 программистов и 1724 робота. Сейчас ищут 1623 программиста ...

Правильная последовательность изучения PHP для новичков

Тема в разделе "PHP для новичков", создана пользователем Roman __construct, 5 ноя 2019.

  1. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Это было написано про SQL, но в равной степени (а мб даже и большей степени) относится и к PHP:

    ###################

    камрад, почему-то никто из местных не хочет меня услышать правильным образом)) мб тебе удастся))

    речь не идет о том, чтобы зашить себе под кожу ампулу с ядом, которая растворится в тот самый момент, когда ты начнешь изучать SQL-запросы))) вовсе нет.

    человек В ЛЮБОЙ МОМЕНТ ВРЕМЕНИ может вернуться к изучению этой важной и интересной темы.

    речь идет лишь о том, с чего именно начать изучение и что сделать приоритетным на первых этапах.

    я считаю что тот же самый Eloquent за глаза покрывает потребности начального уровня.

    иными словами, человек может научиться ваять изделия на Laravel, не изучая SQL вовсе.

    а уже потом, по ходу углубления, научиться использовать DB::select() и пр.

    в этом нет никакой проблемы

    Зато он сразу перейдет к делу, без барахтания в песочнице год-два.

    ###################

    Т.е. еще раз основной смысл темы:

    - Сходу начинаете изучать Laravel, и уже по мере надобности углубляетесь в детали "чистого" PHP и "чистого" SQL.

    Тем самым вы себе сэкономите год-два жизни, и сразу привьете привычку к правильному стилю кодирования.

    То есть, вам нет нужды учиться стирать вещи руками в тазике только потому, что чья-то "бабушка стирала трусы дедушки в тазике руками с хозяйственным мылом" (это основной довод моих оппонентов).

    Вместо этого вы сразу можете научиться засыпать стиральный порошок в стиральную машину, и радоваться чудесам технического прогресса :)

    Ребята, мне стоит доверять, я пишу на PHP уже лет 20 примерно :) Может я и не такой мастер, каким мог бы стать, если бы делал это регулярно, день за днем. Но всё равно. Опыт имеет значение.
     
    Белояръ нравится это.
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    @Roman __construct я тебе умный вещь скажу, да:
    в переводе на мой:
    ты этим грешишь на этом форуме сильно =)
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Дизлайк автоматом.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    @Roman __construct, а ничего, что в Laravel трейты, магия на магии и магией погоняет, замыкания и прочее и прочее. Всё это надо знать прежде, чем открыть первую страницу документации.

    Я всегда другой пример привожу. С чего начинается изучение английского языка? С "to be or not to be"? С чего начинается изучение немецкого языка? С "Фауста" Гёте? Нет, сначала учат My name is Misha, Ich heiße Mischa.

    Чем PHP отличается?

    Laravel - единственный правильный стиль кодирования? Серьёзно? И потом, даже в простых относительно проектах иногда надо писать нечто большее чем
    Код (Text):
    1. return Post::paginate(15);
     
    lastdays и miketomlin нравится это.
  5. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Это древний форум по пхп, в разное время тут ругали компостер, фреймворки, ооп, psr и прочие общепринятые штуки. Все страдают, потому что деды страдали, сами страдали и потомки пусть не выделываются )

    Тут не надо доказывать и спорить, тут надо просто подождать пару лет и все сами с тобой согласятся )
     
    Белояръ нравится это.
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    185
    Ну это, как дать человеку сразу права, не изучавшему ПДД и пусть уже по мере надобности останавливается и читает, что этот знак означает. Так же быстрее научишься, чем заучивать все знаки, которые не будешь встречать.

     
    lastdays, Valick, acho и ещё 1-му нравится это.
  7. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    господа модераторы, может кто то забанит этого клоуна?)))
    в то что ты забор покрасить можешь хорошо я еще поверить могу, но не втирай что ты с 20 годами опыта)))
     
    Valick, runcore и lastdays нравится это.
  8. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Безусловно.

    Безусловно следует понимать, что такое echo, $ и ;

    :)

    Однако речь о другом. О тех же самых сессиях, с которыми народ здесь постоянно мыкается. О передаче данных из формы в базу. О выведении данных из базы (в т.ч. постранично).

    Все эти основные навыки лучше получать в рамках изучения Laravel.
    --- Добавлено ---
    Вот ты понимаешь, да))

    Таки назовем это: "феномен дедушкиных трусов" :D

    //я кстати раньше тоже нос от фреймворков еще как воротил)) т.е. компоненты мне сразу понравились, я их еще из первого Zend использовал)) а вот сама реализация MVC - вообще никак не заходила. я роутер и шаблонизацию обычно сам писал - мне это было намного проще, чем разбираться в этом "бессмысленном нагромождении кода" - как я его тогда для себя окрестил ))) однако, разница в том, что я, когда появились эти фреймворки, был уже достаточно опытным кодером, и мне было откровенно лениво переучиваться в ООП стиль. а вот если изучать с нуля - то какой вообще смысл сначала "стирать дедушкины трусы", а потом еще раз испытывать боль, переучиваясь на использование стиральной машинки? никакого.
    --- Добавлено ---
    Всё верно!
     
  9. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    Сначала учить нативные вещи... потом уже учить фреймворки... фреймворк должен облегчать работу - когда ты все это можешь сделать без фреймворка.. плохая идея сразу учить фреймворки...
    хорошая идея - сделать свой фреймворк)) а потом уже начинать работать с ларкой или симфони.. что там по вкусу))
     
  10. ElisDN

    ElisDN Активный пользователь

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Laravel ничему этому не учит. Так что с точки зрения теории он бесполезен.

    Вместо этого он из коробки прививает новичку магию, трейты и лапшекод. А от них будет действительно сложно переучиться.

    Ну и название темы, вроде, про изучение PHP, а не Laravel.
     
  11. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Это расхожий штамп

    но он

    НЕВЕРНЫЙ

    :D

    1. Дело в том, что фреймворки вовсе не "облегчают работу".

    Лично мне - намного проще велосипедить, чем следовать парадигме Laravel Way, или любой другой Way :)

    Тем не менее, я стараюсь везде, где это возможно, следовать общепринятым паттернам, даже если это причиняет определенную боль. Ибо такой подход здорово облегчает передачу кода по наследству )) Я могу запросто передать такой проект другому "ларавельщику" (ненавижу это слово, но оно уже прижилось в народе))) и этот кодер сходу разберется в структуре проекта. Это реально удобно.

    2. Второй момент заключается в том, что PHP для Web, "просто PHP", и PHP в Laravel(Yii2 и пр.) - это, всё таки, несколько разные вещи.

    Т.е. "просто PHP" (или PHP Core) - это PHP без веб-наворотов, типа session_start() и т.п.

    И основы PHP Core конечно надо знать. Хотя бы в общих чертах. Синтаксис, операторы.

    А вот с PHP для Web - уже есть нюансы. Дело в том, что методы Laravel делают по сути ненужным изучение PHP для Web, т.к. они почти полностью покрывают исходный функционал, и даже расширяют его. В Laravel есть много прикольных хелперов, например))

    Иными словами, время потраченное на изучение PHP для Web - это просто время потраченное впустую. Потому что тебе все равно потом придется переучиваться на Laravel/Symfony - а там совсем другой PHP будет. По сути, это уже отдельный диалект этого языка получается. Вплоть до того, что вместо массивов, ты будешь работать с коллекциями. А ведь массив - это вообще базовое, одна из основ любого языка.

    Так что, думаю, что ты неправ :D
    --- Добавлено ---
    Ну замени "Laravel" на "Symfony" если тебе так удобнее)) не вопрос.

    Речь-то не о том идет, что "ElisDN - настолькошибкоумный, что ему проще под каждый проект собирать композером свой отдельный фреймворк, чем использовать готовый" :) Мы здесь все прекрасно знаем, что ElisDN - настолькошибкоумный ))) С этим тоже нет вопросов.

    Но речь идет не о ElisDN, а о тех несчастных, которых местная школота постоянно поливает грязью в топиках за их самокаты по аутентификации/формам/базам данных/ и пр.

    Вот недавний пример:

    https://php.ru/forum/threads/kuki-i-checkbox.81241/

    Тысячи их.

    И вот как раз таки этим людям и стоит начать изучение PHP for Web с изучения Laravel.

    101%
     
  12. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    это мой опыт а не штамп))
     
  13. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Эти несчастные имеют проблемы как раз от того, что начинают изучение php с того, как сделать аутентификацию, да ещё и копипастой. А начинать надо с задач на массивы.
    Тот же самый :) Просто session_start() будет где-то под капотом, но всё равно будет (хотя, Ларка тут отличилась, и делает полностью свои сессии, по-моему, непонятно зачем). Laravel, к тому же, штука достаточно громоздкая и сложная, поэтому когда у меня проект небольшой, я беру обычно Slim.

    А вообще, прежде всего надо научиться быть программистом. А это означает, не быть привязанным ни к языку, ни к инструменту. Да, я пишу на php, но если мне вдруг понадобится Java c их spring-ом, я освою. Не потому что я супер программист, а потому что я не пропустил основы. Или захочу вдруг чего-то на nodejs сотворить. Или фронт вдруг сделать не на привычных мне vue и angular, а на react, который мне не нравится. И т.д.

    Чтоб прилично писать на том же Laravel, надо знать теорию ООП. В общем, зачем куда-то спешить при обучении? Чтоб потом завалиться на собеседовании на элементарном вопросе, как использовать внешние переменные в замыкании в php?
     
    miketomlin нравится это.
  14. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Сорян))
    --- Добавлено ---
    Да какбы речь идет не о спешке а о правильной последовательности.

    Всё равно ведь большинство из этих людей потом будет работать с ларой или симфони. Это неизбежно. И тот опыт который они сейчас обретают, когда мастерят "самодельные" сайты - им совершенно не пригодится. Мы-то раньше так и делали потому что у нас выбора не было. Я например в детстве жил без мобильника просто потому, что тогда мобильников еще не было. Но это совсем не значит что я теперь буду агитировать за то, чтобы не давать детям мобильники вовсе.

    То же самое и с фреймворками.

    Пусть ставит Лару и изучает эти твои замыкания прямо в роутере)) пихает туда контроллеры и модели))) и вьюхи до кучи)))) а потом разносит код по правильным местам.

    Это отличный подход! Просто отличный! :)
     
  15. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    те сам не смог стать мастером, но других учить собрался, лол
    а вообще, очередная тупая тема, созданная тролем ради срача. конструктивного диалога тут небудет
     
    lastdays нравится это.
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Твои слова работают против тебя.
    --- Добавлено ---
    Прочти еще разок уважаемого @ElisDN https://php.ru/forum/threads/81301/#post-613116
    вторую строку особн.
    --- Добавлено ---
    Ты сам себя в гроб загонишь за чушь, прекращай. Ибо
     
  17. ElisDN

    ElisDN Активный пользователь

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Нет, спасибо. Не заменю попсовый Laravel на академичный Symfony.

    Symfony всегда учит хорошим практикам на нативном PHP, Laravel – чаще плохим на своём.

    Если вы сами 20 лет говнокодили как повезёт, а теперь этими темами оправдываете свой китайский опыт, то для остальных это не очень полезное руководство к действию.
     
    lastdays нравится это.
  18. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Похоже на то :)

    Но мне удивительно другое:

    - Почему люди позиционирующие себя в качестве работников умственного труда, настолько поверхностно смотрят на эти вопросы?

    Как по мне: совершенно очевидно, что разные высокоуровневые диалекты PHP, разработанные в рамках фреймворков, радикально вытесняют базовый PHP из практической разработки.

    И в этом смысле тратить время на совершенствование в PHP core - это все равно что совершенствоваться в C++ планируя стать разработчиком на Python.

    Да, это идет на пользу. Но это несколько о другом))
     
  19. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    @Roman __construct, я вообще считаю, если на то пошло, что начинающий программист должен программировать на Pascal или C, но не на PHP, поскольку PHP не ставит мозги на место.

    Ничего никто не вытесняет. Проект на Laravel по-прежнему проект на PHP, ваш кэп. Сначала нужно понять, как работает сам PHP. Надо быть способным отчитать код фреймворка.
     
  20. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    вот сейчас за Ларку обидно было)) :D
    --- Добавлено ---
    мне иногда кажется что разработчики ларки/симфони не всегда свой код сами могут читать)) там такое количество абстракций)))
     
  21. ElisDN

    ElisDN Активный пользователь

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Ну если Ларку брать без магии, трейтов и фасадов, то будет нормально.

    Совершенно очевидно диалекты JS и ES в рамках JS-фреймворков вытесняют наполовину только нативный JS.
    А в PHP-мире этим пока никак не страдают.

    А если вы в PHP-фреймворках видите какой-то непонятный код, то значит просто не знаете, что они совершенно очевидно написаны на обычном ООП.

    Как вы сказали "начните поверхностно фигачить на Laravel, а потом по ходу вглубь разберётесь", так и смотрим. Что теперь-то не так? :)
     
  22. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Дмитрий, это с твоей стороны уже - спор ради спора. Это как Жириновский))

    Совершенно ОЧЕВИДНО что если человек не знакомый с фреймворком залезет в любой из его контроллеров - у него сходу возникнет куча вопросов: а что этот метод делает? А что вот этот делает? Да, блин, это ООП. И если размотать по цепочке до основы - мы там найдём (скорее всего) "обычный PHP". Но в совокупности вся эта масса методов и дает новый диалект. Который ничуть не менее диалект, чем какой-нибудь JSX.
     
  23. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Всё-таки есть разница между тем, когда появляются новые синтаксические конструкции и тем, когда просто используются вызовы. Если мы уже залезли в js, то тут речь скорее о том, что если знаешь jQuery, тебе не обязательно знать, как без него получить элемент на странице. А если знаешь ангуляр, то что такое объект document и объект window - для тебя лишняя информация. Что, конечно же, совсем не так и в первом и во втором случае
     
  24. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    На стене висит мочало - не начать ли всё сначала (c) :D

    О чем и речь, собственно. Началось с моего тезиса о том, что если ты хорошо знаешь Eloquent - тебе знание SQL во многих случаях не понадобится.

    Так почему бы сразу не начать с Eloquent? *ритор.* А знание SQL уже подтягивать по ходу дела, по мере надобности.

    То же самое и сессиями.

    То же самое и с аутентификацией/авторизацией.

    То же самое и с отправкой и валидацией данных из формы.

    ВСЁ РАВНО В КОНЕЧНОМ ИТОГЕ ПРИДЕТСЯ ОСВАИВАТЬ РАБОТУ С ПЕРЕЧИСЛЕННЫМ В РАМКАХ ФРЕЙМВОРКА - ТАК ЗАЧЕМ НАЧИНАТЬ С ТОГО, ЧТО ИСПОЛЬЗОВАТЬ ПОТОМ НЕ БУДЕШЬ? ЛУЧШЕ НАЧАТЬ С АКТУАЛЬНОГО, НЕ ТАК ЛИ?

    Ладно, я уже подустал писать одно и то же разными словами :) Это вроде как сталинисту объяснять, что никакое "величие нации" не стоит миллионов зверски замученных безвинных людей - а он тебе в ответ про "десятки построенных заводов и индустриализацию" :D

    Нет диалога. Меня не слышат.
     
  25. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    мне иногда кажется что разработчики ларки не всегда свой
    дайте мне машину и права.. а правила я буду учить если понадобятся))
    --- Добавлено ---
    я не сталинист.... но в масштабах истории цель всегда оправдывает средства... в масштабах одного человека - никогда..