За последние 24 часа нас посетили 7815 программистов и 557 роботов. Сейчас ищут 182 программиста ...

PHP - Правильный путь.

Тема в разделе "Прочие вопросы по PHP", создана пользователем romach, 13 июн 2015.

  1. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    У PHP низкий порог вхождения и он имеет дурную славу среди разрабочиков. Но это не значит, что PHP плох, просто он не требует от вас качества кода и потому многие пхпшники не в состоянии написать ничего, кроме того, что программисты обычно называют "говнокодом". Если вас это не устраивает и вы не хотите работать за еду, готовьтесь к тому что придется изучить множество вещей, о которых не рассказывают в видеокурсах от "гуру веб-разработки". Постарайтесь изучить каждый раздел со всей ответственностью, разобравшись в деталях и поняв зачем всё это нужно.

    Важно. Прежде чем читать дальше, вы должны разбираться в основах: переменные, циклы, работа с БД, файлами, обработкой форм, выводом данных и тому подобных вещах. Для проверки, попробуйте выполнить задачу, которую предложил Fell-x27.

    PHP - основы

    Самые основы. Как работает PHP. - для новичков и тех кто пришел из других языков.
    Безумный PHP. Фьюри код - грабли на пути пхпшника.
    PSR-1 PSR-2 - рекомендации к оформлению кода.
    PHP. Правильный путь. - описание основных направлений для изучения и дальнейшего развития.

    IDE
    Теперь вам нужно выбрать IDE - это как Word, но для PHP. Она сделает разработку и использование дополнительных инструментов гораздо более удобной, чем при использовании традиционных редакторов.

    NetBeans PHP - удобная среда для разработки на PHP.
    PhpStorm - воплощение совершенства, но за деньги.

    Git
    Система контроля версий позволяет отслеживать все изменения в коде, работать с разными версиями проекта одновременно или даже совместно с другими разработчиками, не боясь, что вы запутаетесь в правках.

    Git How To - пошаговая инструкция на русском.
    tryGit - песочница, где можно попробовать git прямо в браузере.
    git-scm.com/book/ru/v1 - документация на русском.

    Composer и пакеты
    Менеджер зависимостей даст вам возможность воспользоваться наработками сообщества и использовать уже готовые компоненты, вместо написания своих: роутинг, работа с БД, изображениями, авторизация через соц.сети и множество других вещей.

    getcomposer.org/ - скачивание и установка composer.
    Composer — менеджер зависимостей для PHP - инструкция по работе на русском языке.
    packagist.org - репозиторий пакетов для composer, прежде чем писать свой велосипед ищем нужный функционал тут.
    thephpleague.com — независимые от фреймворков пакеты высокого качества.

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

    Symfony/Silex - более академичный, но и сложнее остальных: оф. сайт Symfony, оф. сайт Silex
    Laravel/Lumen - самый популярный в мире: laravel.com - оф. сайт, laravel.su - документация на русском, Awesome Laravel - большая подборка ссылок, packalyst.com - пакеты для Laravel
    Phalcon - работает как расширение php, потому быстрее остальных, но и заведется не везде: оф. сайт Phalcon
    Yii - традиционно самый популярный в России: оф. сайт Yii, русскоязычное сообщество

    Примечание: Silex, Lumen, а так же Micro Phalcon`а - мини-версии фреймворков с ограниченным функционалом, но при этом как правило работающие быстрее своих старший собратьев и позволяющие в случае чего перейти на них без лишних трудозатрат.

    Шаблонизаторы
    Шаблонизаторы позволяют отделить логику от представления наиболее удобным способом, наследовать шаблоны, расширять и изменять их на лету.

    Twig - оф. сайт шаблнизатора
    Blade - шаблонизатор от создателей Laravel. Официально отвязать его от фреймворка нельзя, но можно воспользоваться пакетом или даже альтернативной реализацией.
    Fenom - репозиторий.
    PHP - сам по себе неплохой шаблонизатор )

    Тестирование
    Если вы уже сталкивались с тем, что при правке одного куска кода отваливается другой, то вам необходимо разобраться с тестированием. Сделав один раз тесты для форм, вывода данных, работы с БД или сложных обработок вы будете уверены, что все работает как нужно.

    fzaninotto/Faker - пакет для создания фейковых данных, ими можно будет наполнить БД или применить их для тестирования.
    codeception - невероятно удобный пакет для создания тестов для вашего приложения, имеет человекопонятный синтаксис вроде "я иду туда, ввожу текст в поле, жму кнопку и вижу вот такой текст".

    Читать до просветления
    Пока вы изучаете один инструмент, все вокруг уже переключились на другой. Следите за новинками и тенденциями, изучайте новые техники и смежные области. Иначе вы рискуете превратиться в мамонта и сгинуть на очередном витке эволюции )

    Блог Zfort Group - еженедельные подборки новинок веб-разработки и php
    Каталог рефакторинга - сборник основных практик по превращению вашего говнокода в конфетку.
    ruhighload.com кладезь вселенской мудрости ) Статьи на тему настроек, оптимизации, масштабирования и прочих полезных, но не очевидных моментов.

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

    sandbox.onlinephpfunctions.com - песочница, где можно написать кусок кода, сразу его выполнить, увидеть результат и дать ссылку другим.
    jsfiddle.net - выкладываем сюда html/css/js, можно подключить нужные библиотеки и сразу увидеть результат.
    sqlfiddle.com/ - для баз данных, можно создать структуру, заполнить тестовыми данными и проверить sql-запрос.

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

    p.s. дополняем )
     
    Dmitriy A. Arteshuk, 25517, Shkiper777 и 3 другим нравится это.
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    10.311
    Симпатии:
    1.028
    Адрес:
    там-сям
    очень одобряю порыв! хочу только от себя написать: пока новичек не сумеет написать самостоятельно сортировку пузырьком, рекурсивный обход каталогов и поиск методом двоичного деления, ему не стоит читать н и ч е г о про "рефакторинг" и "хайлоад". ))) серьезно!

    мы каждый день видим таких "обезьян в очках", не надо их плодить.
     
  3. VLK

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

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    в IDE надо добавить phpDesigner, я бы не сказал что он удобен, но у него есть одно несомненное преимущество, он может на месте выполнять скрип, без установки интерпретатора, настройки и т.д. просто нажал кнопку Run и тут же получил результат, даже не надо сохранять файл, бывает очень полезным когда надо быстро проверить какую-нибудь мелочь.
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.238
    Симпатии:
    1.707
    Адрес:
    Молдова, г.Кишинёв
    VLK а потом люди не знают как всё это вместе работает, пусть познают установку интерпретатора
     
  5. VLK

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

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    ну выучить потом как это работает проще, чем все сразу одновременно.
    не хочется спорить решайте сами, речь идет не только о новичках, я думаю и у бывалых бывают довольно часто случаи:
     
  6. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    Ну, я ориентировался на человека, который уже разобрался с основными моментами и подошел к стадии "как делать правильно". В этом месте есть некоторый провал в интернетах, пишут либо о hello world, либо о конкретных задачах, подразумевая что читатель уже и так все остальное знает.
    Плюсую. Понимание того как это все устанавливается и собирается в кучу необходимо.

    Добавлено спустя 1 минуту 47 секунд:
    Можно. Но на выходе получится "обезьян в очках" ))
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.450
    Симпатии:
    582
    Запуск скрипта в IDE не заменит настройку локалхоста для запуска сайта. Алсо, чтобы лишь запустить php-скрипт, не нужно ничего устанавливать. Только скачать zip и распаковать.
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.162
    Симпатии:
    1.761
    Адрес:
    :сердА
    Предлагаю модифицировать топ-пост, разбив его на "уровни", по степени продвинутости.
    Мол какие-то пункты для новичков, чтобы прям вот сразу читали и проникались. А какие-то только, когда опыт есть.
    А потом можно и прикрепить будет.
     
    Shkiper777 нравится это.
  9. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    Биг-апдейт с пояснениями к каждому пункту.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.162
    Симпатии:
    1.761
    Адрес:
    :сердА
    Если никто не против, можно прикрепить в теме для новичков.
     
    mahmuzar нравится это.
  11. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    Давай.
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.162
    Симпатии:
    1.761
    Адрес:
    :сердА
    Пожалуй конкретно по ларавель можно убрать часть. Либо все фреймворки популярные приводить, либо ни один.
     
  13. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    Совсем без фреймворков нельзя, потому добавил остальных тяжеловесов. Будет неплохо, если те кто специализируются на них накидают ссылок по теме.
     
  14. d1gi

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

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
  15. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    Right Way уже есть. А с шаблонизаторами я даже хз, отдельно твиг добавить нельзя, придется делать подборку всех остальных, к тому же это будет уже отклонением от темы. Была идея создать подборку мастхэв пакетов, которые можно добавить в проект не таща вместе с ними кучу зависимостей, но для начала надо разобраться с тем что есть )

    Я вот даже не знаю, стоит добавлять сюда инструменты вроде sphinx-doc или скажем CodeSniffer, которые вроде как полезны, но и не используются повсеместно?
     
  16. d1gi

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

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    современных шаблонизаторов не так много, в симфони по умолчанию предлагается твиг, в ларавеле блейд, а феном просто интересен за счет внутренней реализации на токенизерах :) а смарти вроде как всё меньше и меньше используется...

    притом твиг это отдельный пакет, блейд не знаю как отковыривается от ларавеля, итого для использования отдельно в своих проектах остаётся очень популярный твиг и интересненький феном ;)

    еще можно вот такую утилитку добавить "PHP Coding Standards Fixer" - http://cs.sensiolabs.org/
     
  17. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    10.311
    Симпатии:
    1.028
    Адрес:
    там-сям
    Сборник заблуждений на PHP.RU )))

    На самом деле Twig это независимый от фреймворков пакет. https://github.com/twigphp/Twig В симфони он подключается через мост.
    Просто для справки, что именно является частью симфони: http://symfony.com/components — внезапно™ родной для симфони шаблонизатор — "нативный" :).

    Blade как отдельный пакет: https://github.com/PhiloNL/Laravel-Blade
    Или моя поделка в стиле блейд: viewtopic.php?t=51981
     
  18. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    А заблуждение то в чем? В симфони-проектах твиг используется повсеместно, а если говорить о независимости, то там по сути все компоненты независимы от фреймворка точно так же как и твиг )
     
  19. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    10.311
    Симпатии:
    1.028
    Адрес:
    там-сям
    Друг, мне это пофигу, я не даю оценки сего факта. Просто констатирую: твиг не часть симфони. Он даже не соответствует PSR )))

    Добавлено спустя 4 минуты 59 секунд:
    Заблуждения в том, что "в симфони по умолчанию предлагается твиг" или "отдельно твиг добавить нельзя".
    Часто путают фреймворк и скелетное приложение в котором демонстрируется фремворк.
    Добавлено спустя 12 минут 3 секунды:
    а Зенит лучший футбольный клуб в мире. срыв покровов
     
  20. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    716
    1. А какая связь между популярностью и срезом предложений одеска в конкретный момент времени?
    2. Идем на symfony/symfony, находим раздел Installation, делаем то что там рекомендовано и получаем твиг в комплекте по умолчанию. Что не так то? )

    Мы ж тут не руководство по симфони пишем, а даем ссылки.
     
  21. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    а зачем тогда вообще писать о его, якобы, популярности? тем более что это не так.
     
  22. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    10.311
    Симпатии:
    1.028
    Адрес:
    там-сям
    1. Сейчас мы начнем обсуждать что такое "популярность". Заказы на oDesk показывают коммерческую востребованность. Тренд до сих пор не переломился, кстати. Примерно те же соотношения остались. Хотя тег в скиллах laravel-framework уже добавили. А oDesk-Elance, ныне Upwork, это самая крупная биржа фриланса, так что это показатель. Лучшего примера я не знаю.

    2. Ок, пускай рекомендовано. Не необходимо и не часть.

    Ты молодец, я уже это говорил ) Ссылки годные.
     
  23. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    кажется, ты о чём-то забыл.

    p.s. автору и всем дополнявшим - огромный воображаемый лайк.
     
  24. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.162
    Симпатии:
    1.761
    Адрес:
    :сердА
    Закрепить? Это уже не ко мне, это к человеку в самбреро. Я в конкретной ветке не могу подцепить тему. Что странно. Могу подцепить, чтобы было видно везде, но это не совсем то, что нужно.
     
  25. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    10.311
    Симпатии:
    1.028
    Адрес:
    там-сям
    Нет, мой четвероногий друг, дело не в личных полномочиях. Почему-то конкретно у этого раздела нет опции "прилепить тему". Это загадка. В PHPBB есть такие неочевидные места.

    update: Так и не нашел где это разруливается, но нашел команду "скопировать права доступа" и скопировал с другого раздела. И прилепил. :)