Урок 1. Установка Laravel, php, миграции


Итак, давайте все же научимся работать с Laravel. Laravel - это фреймворк веб-приложений PHP, предназначенный для разработки веб–приложений по архитектурному шаблону model–view-controller (MVC). Он имеет выразительный, элегантный синтаксис и предоставляет инструменты, необходимые для больших и надежных приложений.

Начем с того, что нам придется устанавливать Laravel дважды – на нашу рабочую машину и на реальный сервер. Вообще, в коммерческой разработке, очень желательно иметь одинаковые версии ОС, так что если что, то учитесь сразу работать с виртуальными машинами. Но для начала работы, для ознакомления, так сказать, можно и под видоусом начать разработку, а потом переносить уже на убунту реальную готовое. Новый опыт никогда не бывает лишним.

Сначала скачаем и поставим php 7.4. Качаем с windows.php.net – выбираем нужную версию и куда-нибудь распаковываем скачанный архив. Дальше перейдите в эту папку, найдите файл php.ini-development, скопируйте его и переименуйте исходный в php.ini. Примечание - в XAMPP есть тоже PHP, можно и оттуда взять.

Теперь надо скачать и установить XAMPP - берите последнюю версию, но лучше не с PHP 8. Этот будет у нас домашний сервер - апач, база - все в нем.

После этого нам нужен Composer. Берем его с getcomposer.org и в процессе установки показываем ему, где лежит предварительно скачанный PHP.



Далее запускаем XAMPP и переходим в папку htdocs

D:\> cd xampp
D:\xampp>cd htdocs
Создаем проект

composer create-project --prefer-dist laravel/laravel new_project
Переходим в папку

D:\xampp\htdocs> cd new_project
И запускаем

php artisan serve
И получаем ошибку:

PHP Warning: require(/home/matynjr/events/vendor/autoload.php): failed to open stream: No such file or directory in … on line 18
PHP Fatal error: require(): Failed opening required) …. on line 18
Фиксим её

composer update --ignore-platform-reqs
Пробуем запустить снова artisan и наконец-то видим стартовую страницу нашего Lavarel в браузере по адресу

http://localhost/new_project/public/


Отлично, теперь надо разобраться с базой данных. В Shell пишем

php artisan make:migration create_tasks_table --create=tasks
Кстати, командную строку надо запустить новую, так как в старой идет процесс сервера. После выполнения в папке database/migrations появятся новые файлы.

Теперь надо настроить подключение к базе данных в файле config/database.php (не забыв предварительно создать пользователя и базу данных)

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3307'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', 'forge'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
Также не забудем и файл .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3307
DB_DATABASE=forge
DB_USERNAME=forge
DB_PASSWORD=forge
Теперь уже можно

php artisan migrate
Все на месте:



Ну, почти все. Давайте сразу научимся изменять таблицу – вдруг мы забыли поле name:

php artisan make:migration add_name_colums_to_tasks_table --table=tasks
Эта команда создаст еще одну миграцию (файл). Теперь мы его немного подправим:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AddNameColumsToTasksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('tasks', function (Blueprint $table) {
            //
        });
    }
	
	Schema::table('tasks', function(Blueprint $table){
		$table->string('name');
	});

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('tasks', function (Blueprint $table) {
            //
        });
    }
} 
Ну и в конце занятия создадим модель и на этом пока хватит.

php artisan make:model Task
В app/models появился файл task.php с таким содержимым

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Task extends Model
{
    use HasFactory;
}
На следующем уроке мы узнаем, что такое роутинг.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, уроки по Laravel, laravel




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




Узнать Google Client ID с помощью JS и PHP
Хитрости игры в дурака: урок №1
Прилипающая шапка на сайт парой строчек