Как я учил php или часть вторая
Итак я стал учить php. Я не знал вообще ничего из него – ни истории создания, ни применения, ни что это серверный язык – вообще ничего. Мне просто нужно было поправить тему сайта и везде писали, что это делается через этот язык.
Быстренько подобрал учебник попроще на русском языке и так же быстро его пролистал – да вроде всё понятно, зачем это авторы столько страниц водой забили. Взял другой учебник, тоже русский — а всё понятно, ну там есть какие-то непонятные моменты, но мне вроде они не нужны и так справлюсь.
Открыл тему и я в ступоре. Это когда читаешь учебник оно понятно, а в реальном коде это бессмысленный набор символов. Да ещё и объектно – ориентированное программирование, в реальности всё на нём написано, а я уже и забыл, что в книжках написано.
Вернулся опять к учебникам – для начала взял совсем простой переводной и стал изучать более внимательно и вдумчиво. Потом я читал, что php это очень простой язык, школьник справится. А у меня высшее образование и я ничего не понимаю. Прошёл этот простой учебник полностью без пропусков и ничего в голове не отложилось. Вернулся к первому учебнику, он более подробный. Теперь стало проясняться, а зачем один термин авторы на две страницы растянули, перед этим не понимал. Прошёл и этот учебник, немного понял, только именно что немного.
Этого хватило, чтобы немного поправить шаблон сайта. Плюс модули, пробовал по рекомендациям, из двух десятков удавалось запустить один и этому радовался.
И как-то так получалось, что все модули и плагины требуют именно ту тему, которую делал автор или нужно эти модули самостоятельно дорабатывать. Вот и мне понадобилась доработка плагина, нужен javascript, а я его совершенно не знаю – один язык не получается нормально выучить, куда там ещё что-то учить. С горем пополам доработал я свою тему и успокоился. Даже начал учить новое по своей основной работе и всё стало получаться гораздо лучше.
Только прошло совсем немного времени и мне опять понадобились доработки сайта. Полез на форумы, там объясняли, что нужно лезть в движок, по-другому никак. А в движке ООП, которое я не знаю – опять присел за учебники.
Если бы у меня был ментор или по русскому наставник, то конечно мои сроки обучения были бы в разы меньше, я бы учился по другому и может быть вообще всё было бы другое, только наставника не было. Я за свою трудовую деятельность выучил нескольких людей профессии, именно они теперь работают на заводах, до этого они и мечтать об этом не могли. И именно потому, что я знал, что нужно в первую очередь, а что может и не понадобится вообще никогда, их я учил быстро и очень эффективно.
Итак, я стал заново учить язык и учить ООП. Учебники выучил, знаний почти не добавилось – ну как-то слишком всё упрощено и выхолощено. Стал разбирать реальные примеры, правильно сделанных движков очень мало, это я потом понял.
Мучался долго, наконец начало получаться. И может хорошо, что сразу не получилось по советам с форумов – в движок влазить нельзя, для того ооп и существует. Доработал тему и погрузился в свою основную работу.
Ненадолго расслабился – а потом по работе мне понадобилось собрать материал для работы, это гигабайты информации и вручную собирать, так поседею раньше, чем соберу сотую часть. Залез в интернет и там узнал, что мне нужны парсеры. Знаний у поэтому вопросу никаких, но пишут, что на php это можно делать. Ну php я «немного» знаю, должен справиться. К тому моменту я уже понимал, что php я знаю вообще поверхностно, какой баран написал, что это очень простой язык? Ну приступил и сразу обломался.
Продолжу на следующей неделе.
PHP: с чего начать, как учить и что в итоге знать?
Ровно 2 месяца назад я спрашивал тут о том, как стать профессиональным веб-разработчиком за 7 лет (http://habrahabr.ru/qa/21830/). Сразу стало понятно, что без английского, с которым у меня все не очень гладко, не обойтись. За 2 месяца я подтянул свои знания английского на уровне чтения технической литературы, обзавелся маком и подтянул знания в html5.
К делу
Настало время изучения php. Хотя я его уже учил. Знаю типы данных, функции, mysql на уровне простых запросов, немного ооп и небольшую часть библиотеки GD2. Очень плохо с практикой, то есть не знаю как применять все это в деле. Я смогу написать очень простую систему регистрации с хранением данных в mysql базе; вход с помощью cookie и сессий; гостевую книгу и какой-нибудь простой поиск.
Вопросы
1. Как учить php чтобы реализовывать проекты на нем профессионально?
2. Какие книги стоит для этого читать? Как учить? По сколько часов в день?
3. Как научиться правильно использовать php на практике? Что он может?
4. Какие БД использовать?
5. Что насчет фреймворков?
6. Что такое git (github) и зачем это нужно?
7. Что же нужно знать и уметь в итоге? И сколько времени на это уйдет? Заранее спасибо!
На первые несколько пунктов попробую написать рекомендации в свободной форме.
Первое и самое главное — чтобы хорошо изучить программирование на РНР, надо хорошо изучить программирование. Это очень важная вещь. Большая часть людей, пишущих на РНР, не имеют ни малейшего представления о программировании. Даже о таких базовых вещах, как форматирование кода, отладка, профайлинг, обработка ошибок, файловые операции. Можно заметить, что я не говорю об ООП. Это совсем отдельная тема, ООП надо учить специально. К сожалению, из 100 человек, которые говорят, что знают ООП, 90 являются банальными копипастерами, выучившими синтаксис, но не понимающими смысла объектов. Но чтобы играть в шахматы, недостаточно знать, как ходят фигуры.
Ещё неплохо бы ответить себе на вопрос — для чего ты хочешь выучить программирование на РНР? Вопрос совсем не праздный. Многие люди смешивают в нем кучу разных понятий. К примеру, здесь уже упоминали CMS. и действительно, если речь идёт о зарабатывании денег, то кастомизация Джюмлы и написание к ней говномодулей в финансовом плане куда более выгодны, чем умение писать что-либо с нуля. Для фриланса, во всяком случае.
- Можно склепать гостевую или сайт-визитку на «голом» РНР — и ничего плохого или позорного в этом нет. Наоборот — это плюс языка, который годится и для таких целей, не таща за собой пару миллионов строк кода ради сайта из пятисот.
- Можно написать профессиональный портал, взяв за основу какой-то из существующих фреймворков, и заниматься его развитием.
- Можно написать кастомный хайлоад проект, для которого нужно будет писать собственный фреймворк опять на голом РНР.
- Можно, как уже говорилось, клепать сайты на основе какой-нибудь ЦМС.
Вариантов масса! поэтому нужно определиться сначала, чего хочется.
Там выше говорили про JS+CSS — не надо слушать, это полная ерунда. Фронтенд программирование — совсем отдельная вещь, куда больше визуальная, чем абстрактная. И, слава богу, все больше работодателей начинают понимать это. Хотя опять же — если фрилансишь и на все руки мастер — то без этого никуда.
Но если работать хардкорным серверным программистом в команде, то об HTML/JS/CSS нужно иметь только общее представление (поскольку тексты на этих языках являются, вообще-то, практически единственным результатом работы РНР).
А вот что обязательно нужно хорошо знать из сопутствующих технологий — это протокол НТТР, устройство файловой системы, работа c командной строкой в линуксе.
Mysql всё ещё является краеугольным камнем хранения данных в вебе. Нужно знать и понимать джойны, индексы
Фреймворки — обязательно. Тут, правда, стоит проблема выбора, но принципиальной разницы между ними нет. Yii — неплохой выбор.
Гитхаб тебе не нужен, знать его не обязательно. Знать надо git.
А вот что является обязательным для веб-программиста — это умение пользоваться гуглем. Хотя бы на уровне умения скопипастить в поисковую форму сообщение об ошибке или написать вопрос «Что такое git» 😉
Потому что для работы в команде какую-либо систему контроля версий знать надо, а git является стандартом де-факто. Понимать принцип работы и базовые команды — чекаут, коммит, пуш.
Не могу научиться php
1. Синтаксис
Код в PHP заключается в открывающий теги. Согласно стандарту кодирования PSR-12, закрывающий тег должен быть опущен в файлах, содержащих только код PHP . В конце строки ставят разделитель строк – точку с запятой ; . Если забыть поставить разделитель, то следующая строка кода соединится с предыдущей и интерпретатор PHP выдаст ошибку.
Выведем на экран строку Hello World (заключена в кавычки) с помощью команды echo :
Оператор if выполняет код, если выполняется условие. В противном случае выполняется код после else, который переводится, как «иначе», «в другом случае».
Оператор while выполняет код до тех пор, пока значение условия не станет ложным.
Когда нам известно количество итераций, вместо цикла while лучше использовать цикл for .
Массивы – упорядоченная коллекция элементов с доступом по индексу или ключу. Индексный массив создается двумя способами:
Если мы получили ошибку 404, значит сервер запущен.
XAMPP
Скачаем и установим XAMPP . В папке C:\xampp\htdocs\ создадим папку нашей странички page . Запустим веб-сервер Apache, кликнув по кнопке Start . Узнаем версию PHP, введя в консоли (Shell) команду php -v .
Проверим, запущен ли сервер, перейдя по адресу http://localhost/ . Если появилось приветственное сообщение, значит сервер запущен.
14. Собираем страничку
Теперь создадим несколько PHP-файлов, из которых соберем страничку. Перейдем в папку page и создадим четыре файла: index.php , header.php , body.php , footer.php .
Структура простого HTML-документа выглядит следующим образом:
Литература
- Робин Никсон. Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5;
- Котеров, Симдянов. PHP 7;
- Веллинг, Томсон. Разработка веб-приложений с помощью PHP и MySQL;
Шпаргалки
YouTube-каналы и курсы
Бесплатные курсы на русском языке:
- Основы php с нуля. Новейший курс 2020 – двадцать четыре урока от основ до регулярных выражений и функций;
- Базовый курс по PHP 7 – узнаете про базовые понятия, GET-параметры, методы, функции и ООП;
- Учим PHP за 1 Час – основы за полтора часа;
- Изучение PHP для начинающих – научитесь работать с массивами, подключать файлы, обрабатывать формы, работать с куки и базой данных MySQL;
- Уроки PHP 7 – много уроков по ООП;
- PHP для начинающих – курс на Stepik для начинающих разработчиков, не требует специальных знаний;
- PHP – первое знакомство – азы программирования на PHP (Stepik).
PHP в «Библиотеке Программиста»
- подписывайтесь на тег PHP , чтобы получать уведомления о новых статьях;
- телеграм-канал «Библиотека пхпшника»;
- книги по программированию в нашем телеграм-канале «Книги для программистов».
Итог
- вы познакомились с синтаксисом PHP и типами данных;
- узнали, как работают условные операторы и циклы;
- запустили веб-сервер в Ubuntu и Windows;
- собрали страничку HTML из файлов PHP.