Марафон 180 дней PHP

phpЯ уже столько раз пытался выучить язык PHP, что и счет потерял! А ведь требуется постоянно. Вот, в преддверии нового года, я вспомнил про марафон одной девочки Дженифер Девальт, которая поставила себе задачу научиться программировать и за 180 дней создать 180 сайтов. Ну а я чем хуже?!

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

Поэтому я буду писать.. один сайт! Но какой!

У меня задумка просто наполеоновская — написать сайт для друзей (этот сайт уже у них есть, я буду брать с него материалы), с админкой, всякими плюшками. Но не на какой-либо готовой CMS, а на php framework Kohana.

Откуда начинать

В доме уборку начинают от угла. Плясать начинают от печки. Ну а я начну со своей квалификации.

  • Верстка — 60%
  • Графика — 50%
  • PHP — 30%
  • JavaScript — 0%
  • MySQL — 5%
  • Английский язык — 10%

Как видите, далеко не фонтан. Возможно, я занижаю свои знания, но именно так я воспринимаю свои знания по предметам. Да, я могу делать сайты на готовом движке, могу админить сайты. Но чуть сложнее задача, уже ничего не могу и тыкаюсь как котенок.

Верстка у меня лучше всего, могу поправить сайт с большими проблемами. Проблемы идут больше из-за графики, тут нужно более-мене сложные навыки, и об этом я буду заботиться после своего марафона. Возможно, это даже будет тема следующего марафона. Блочную верстку я более-менее понял, однако на сложных вещах у меня уже затык. Тем более с отзывчивой версткой. Ну, об этом я буду думать чуть позже.

Графика тоже не на уровне, как я уже сказал. Но для этого марафона пойдет.

А вот с PHP у меня уже объективно плохо. То есть азы я знаю, что-то даже понимаю. Как говорят про языки «читаю со словарем». Вот только что-то сложнее функций я уже не понимаю. С классами и объектами у меня вообще затык:  я понимаю что это, зачем это, но применять не умею совершенно! Тем более, тонкостей языка даже в синтаксисе я не знаю. Вот и получается, что читаю, но написать не могу. Вот над этим я и буду работать.

Сайт без JavaScript – это мертвый сайт! Чуть сложнее чем статика и уже обязательно требуется этот язык, который добавляет динамизма к странице и показывает страничку в лучшем свете пользователю. Но если тупо воткнуть скрипт по примеру я могу, даже что-то настроить под себя по примеру, то написать и адаптировать уже не могу. А админка для будущего сайта у меня уже в голове имеет огромное количество этого javascript! Вот и в этом направлении будем работать.

MySQL стал фактически стандартом реляционных баз данных в веб-разработке. И язык SQL стал совершенно необходим для любого разработчика. Что-то я проходил на лекциях в институте 15 лет назад, но уже давно это забыл. Нет, что-то в подкорке осталось, но вспоминать, а, точнее, учить придется основательно. Хорошо хоть информации по языку море.

Ну и английский язык стал фактически международным в компьютерном мире. Вся документация на нем, и без него более-менее серьезной документации не прочитать. Увы. В школе у меня были огромные проблемы из-за отсутствия учителей годами по английскому, придется подтянуть.

Итак, общую картину своих знаний я обрисовал. Перейду к цели.

Цель – сайт

Накропать даже на php сайт-визитку можно запросто даже с моими знаниями. А уж если еще взять любой конструктор сайтов — CMS, то можно и круче сделать. Однако цель именно в написании сайта на фреймворке Kohana, где нет ничего готового и все придется делать руками.

Итак сайт-донор – сайт пансионата «Галина». Можете его глянуть, он довольно нестандартный с одной стороны для таких сайтов. С другой стороны, это абсолютно банальный корпоративный сайт. Его я буду использовать как донор материалов, картинок и каких-то идей в плане структуры или оптимизации под поисковые системы. Написал его другой человек на CMS Drupal, которую я уважаю, но не люблю. Такой сайт на CMS MODX я могу реализовать легко и быстро, но соль тут в другом.

С фронтенда сайт довольно обычный и ничем не примечательный. Типы контента абсолютно просты и понятны: статические страницы, форма бронирования, контактная  форма, новость пансионата, новости Анапы, статьи об Анапе, фотогалереи, гостевая, раздел FAQ.

А вот задумка с админкой уже наполеоновская — сделать удобную админку, где можно настраивать гибко сайт. Это и меню, и виджеты (привет, javascript!), и слайдер, и работа с контентом. В голове что-то вертится типа админки WordPress, скрещенной с Drupal, MODX и кучей других систем. Учитывая, что очень трудно все это реализовать сразу, я буду все это реализовывать с приближением и последовательным улучшением. То есть: сегодня это комментарии от DISQUS, а завтра это уже самостоятельный модуль. Или сегодня это текст, завтра текст из базы, послезавтра его генерирует сайт.

Фактически, это написание свой CMS!

Этапы работы

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

Я планирую выделять 4-5 часов вечером после работы на обучение. Эта время будет разбита на модули по 25 минут и перерывом в 5 минут между ними:

  1. Модуль  25 минут – теория языка программирования (чтение, просмотр видио);
  2. Модуль 25 минут —  практическое занятие;
  3. Модуль 25 минут – английский язык;
  4. Модуль 25 минут – практическое занятие по английскому языку;
  5. Модуль 25 минут – теория по kohana;
  6. Модуль 25 минут – практическая работа над сайтом. Модули повторяются до исчерпания свободного времени.

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

Сам сайт я планирую выложить в поддомен и обновлять его по мере прохождения этапов. Заодно и на github исходники этого сайта планирую выложить, куда потом можно будет зайти и посмотреть этапы. За одно  и отработаю и взаимодействие с git и github.

Итак, с завтрашнего дня я начинаю!

Ссылка на основную публикацию