Соцсеть. Начало.

Вот мы и начинаем курс по созданию своей соцсети.

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

Он очень удобен и прост в использовании, и вообще portable, так что можно чуть что и с собой таскать с места на место :)

После распаковки из модулей можете в настройках на свое усмотрение подключить Apache или Nginx, само собой MySQL, остальные подключим позже, здесь это, к счастью, делается крайне легко. Помним, что Laravel требует версию PHP >= 5.5.9

 

Также необходимы следующие расширения для PHP:
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension

Одни достаточно будет раскомментировать в конфигурации php.ini, других может там и не оказаться, и их придется скачать, tokenizer вообще должен по умолчанию быть встроен.

Дальше нам понадобится composer.

Это так называемый менеджер зависимостей (а не какой-то установщик, как можно подумать). Для чего он нужен? Говоря простым языком, если ваш проект зависит от каких-то сторонних библиотек (а большинство фреймворков зависят), скажем, mailer какой-нибудь, шаблонизатор, логгер, да и собственно ядро фреймворка, короче любые компоненты, из которых этот фреймворк состоит, то компоузер отслеживает и устанавливает всё необходимое (вместо вас).

То есть если вы хотите включить в проект еще какую-то библиотеку, которая в фреймворк изначально не входила, вы выполняете команду

composer require [ИМЯ_ПАКЕТА]

и он сам проверит, не установлен ли он уже, если нет, то какие ещё библиотеки требуются для работы этого пакета, не установлены ли они уже, совместимы ли версии и т.д. В общем, всю грязную работу делает.

Вся информация о зависимостях сохраняется в файле composer.json в корне проекта, библиотеки складываются в папке vendor там же.

Важно понимать, чем отличается composer.json от composer.lock. Когда вы что-то установили, в composer.lock записывается информация о текущих зависимостях и их версиях. Это нужно для того, чтобы если вы решите развернуть проект где-либо ещё, например, на тестовом сервере или на продакшене, то установлены будут именно те версии компонентов, что и у вас (а не более новые, которые потенциально могут вызвать непредвиденные ошибки).

Так вот запомните: если есть файл composer.lock, то нужно запускать команду composer install (она использует lock). Также composer install создаст этот lock файл, если его нет. Но есть ещё команда composer update, вот её стоит использовать с осторожностью, т.к. она обновит всё при наличии новых версий и перезапишет lock файл новыми данными. Так что если вам нужно какой-либо из пакетов обновить, лучше обновлять его отдельно:

composer update [ИМЯ_ПАКЕТА]

Если что-то непонятно, можете пока оставить это переварить, и вернуться позже =)

Так вот, вернемся к компоузеру.
Если у вас Linux, то не мне вам рассказывать, как работать в консоли - пройдите по ссылке и скачайте его себе любым удобным вам способом. А если, как и я, вы разрабатываете под Windows, то можете использовать Windows Installer (в ходе установки, если я правильно помню, нужно будет указать, куда установлен PHP, так вот у меня, к примеру, для OpenServer'а он находится здесь D:\OpenServer\modules\php\PHP-5.5). И смотрите, чтобы стояла галочка "Добавить в PATH" или типа того.

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

composer install

* composer - это имя исполняемого файла, install здесь - команда (могут ещё быть, к примеру, update, require или create-project)

Но есть ещё вариант скачать в секции "Manual install" файл composer.phar (php archive) и, ничего не устанавливая, закинуть его в папку вашего проекта и выполнять команды следующим образом:

php composer.phar install

* тут исполняемая программа - это php, которой мы сообщаем, что нужно выполнить файл composer.phar, а дальше уже идут параметры компоузера

Теперь мы можем приступить к созданию самого проекта. Открываем консоль (у того же OpenServer'a будет в меню "Дополнительно" > "Консоль"), переходим в нужную папку (для OpenServer это папка domains внутри директории, куда вы его установили) и пишем:

composer create-project --prefer-dist laravel/laravel social.dev

social.dev это имя папки, в которую всё будет помещено (вы можете обозвать её как угодно).

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

Если всё до этого вы сделали верно, то будете наблюдать как понеслось скачивание пакетов.

Согласно инструкции ларавеля нам нужно установить разрешения на запись для сервера директориям в папках storage и bootstrap/cache, но в винде с этим обычно проблем нет, зато понадобится учесть этот момент, когда будем загружать всё на сервер.

Ещё необходимо сгенерировать уникальный ключ, но поскольку мы установку проводили с помощью composer, то эта команда уже была запущена автоматически по окончании, и нам нет нужды делать это ещё раз.

Теперь не забываем настроить домен (social.dev), чтобы он указывал на папку public внутри проекта, перезагружаем сервер, и вуаля! По нашему адресу видим замечательную заставочку Laravel 5 :) Соцсеть готова! (шутка)

Сразу объясню один момент тем, кто пока не знает, что такое environments (окружения, среды).
Вот пример: у вас развернуто 2 версии одного проекта - одна на удалённом сервере, другая на локальной машине. Логично, что на сервере мы хотим подключаться к своей базе данных, в то время как на локалке у нас отдельная база. Возможно мы захотим прописать ещё какие-нибудь раздельные настройки, например, драйвер кэширования, или включить debugging только на локалке (на проде такое обычно неприемлемо).

Собственно, после установки laravel вы могли заметить в корне проекта файл .env - в нем прописаны основные (именно основные, а не все подряд) настройки, которые могут отличаться от среды к среде. Если вы откроете config/database.php, то в секции connections увидите, что данные для подключения берутся из переменных окружения с помощью функции env().

'mysql' => [
 'driver' => 'mysql',
 'host' => env('DB_HOST', 'localhost'),
 'database' => env('DB_DATABASE', 'forge'),
 'username' => env('DB_USERNAME', 'forge'),
 'password' => env('DB_PASSWORD', ''),
 'charset' => 'utf8',
 'collation' => 'utf8_unicode_ci',
 'prefix' => '',
 'strict' => false,
],

Это удобно тем... что поверьте на слово, а потом убедитесь и сами)

Короче, создавайте базу данных и прописывайте данные для подключения в .env. Кстати, имя окружения тоже тут указано, по умолчанию: APP_ENV=local

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

Пока возьмем перерыв, а напоследок ещё кое-что.

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

Команды очень функциональны, и с их помощью можно быстро и красиво решать множество задач, в том числе автоматизировать некоторые из них, например, создание бэкапов и прочее.

Конечно, теория это хорошо, но нужна же и практика, так вот если вы работаете в Windows, вам поможет эмулятор cygwin. Можете и его скачать побаловаться.

О, а давайте заодно и git-клиент установим!

Сам git качаем отсюда.
Если кто не знает, это система контроля версий. Когда вы работаете один, то вам может быть по барабану, что и когда вы меняли, но когда вас несколько, и вам периодически нужно различные наработки сливать в одну версию, да так, чтобы ничего чужого не позаменять, то гит оказывается незаменим. Да и даже если вы всё-таки в одиночку разработкой занимаетесь, он будет полезен для deployment'а, так сказать выгрузки на хостинг/сервер. Но до этого ещё дойдем.

Скачали? Установили? Если вы новичок, то вероятно не жаждете работать из командной строки, вот здесь нам пригодится GUI-клиент. А даже если и не новичок, через GUI работать бывает быстрее и проще.

Переходим на https://www.sourcetreeapp.com/ и качаем. Запускаем, 3... 2... 1...
И чё дальше? %)

Слева сверху есть кнопка "Клонировать / создать", она-то нам и нужна, клацаем, открывается окошко, выбираем вкладку "Создать новый репозиторий" и в поле "Целевой путь" указываем путь к нашему проекту. Жмем "Создать".

Итак, что делает гит? Он отслеживает изменения в файлах вашего проекта, притом не просто в каких файлах когда были изменения, а какие именно строки на какие были изменены.

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

Есть такое понятие, как КОММИТ. Это изменения, которые вы "закрепляете", как бы говорите системе, что вот я внёс конкретные правки, их нужно теперь хранить в истории изменений, и они сохраняются с вашим комментарием. К этому коммиту можно будет "откатиться" при необходимости, или просто посмотреть кто и что конкретно менял.
Для коммита файлы нужно проиндексировать. Индексация это как бы подготовка к коммиту. То есть в принципе, если вы навносили кучу изменений, то сохранить можете под разными коммитами.
Пока, пожалуй, хватит, но я периодически буду объяснять кое-какие моменты.

Само собой нам ни к чему отслеживать многие изменения (чтобы не сбиваться с толку), например всё, что находится в папке vendor, и так будет загружено компоузером, или всё в папке storage будет генерироваться автоматически и периодически изменяться, так что их можно поместить в игнор. Для этого в корне есть файлик .gitignore, как видим, там уже прописаны .env и /vendor.

Пока добавим в список папку storage, впоследствии скорее всего мы ещё внесём папку с изображениями из директории public, но пока у нас её ещё даже нет.

Для этого выделяем любой файл из этой папки в списке непроиндексированных (можно и вручную прописать сразу в .gitignore) и жмём "Игнорировать". Далее выбираем "Игнорировать всё внутри storage".

Все остальные файлы можем индексировать, нажав на галочку "Файлы не в индексе", после чего они перенесутся в список "Файлы в индексе", и кликаем по кнопке "Закоммитить" и пишем комментарий: "Соцсеть. Начало." (не слишком пафосно?), завершаем. Бабах! Первый коммит готов, его мы можем видеть в истории изменений. По умолчанию главная ветка называется master.

Пока на этом всё, ждём следующую статью =)

 Жду с нетерпением
ваших комментариев!
 

Подписаться на RSS

Вы можете нажать "подписаться", чтобы следить за моими новостями!
Так вы всегда будете в курсе появления новостей на сайте =)
О том, что такое RSS можно прочитать здесь.

Подписаться

Подписаться на Twitter

Я специально зарегистрировался в Твиттере, чтобы вы могли следить за обновлениями на сайте =)

Подписаться

Envato marketplace А эти люди занимаются прокатом карнавальных костюмов и масок в Минске. К слову, я им делал сайт.