Фреймворк laravel

Laravel - это веб-фреймворк PHP с открытым исходным кодом, который предоставляет полную экосистему для веб-разработки. Узнайте, как создавать, развертывать и контролировать веб-приложения с помощью Laravel, его продуктов, пакетов и стартовых наборов.
Ответить
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Создание проекта

Код: Выделить всё

composer create-project laravel/laravel имя_проекта
Запуск проекта laravel

Код: Выделить всё

php artisan serve
Подключение файлов к проекту
composer.json

Код: Выделить всё

autoload: {
...
	"files": [
		"app/Support/Helpers/common.php"
	]
}

Код: Выделить всё

php composer dump
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

https://www.youtube.com/watch?v=0Be0fX9wbXc

Установка:
https://itproger.com/course/laravel
https://getcomposer.org/download/

Установить композер

Код: Выделить всё

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
php composer-setup.php
php -r "unlink('composer-setup.php');"
установить Laravel

Код: Выделить всё

php composer.phar global require laravel/installer
установить Laravel локально внутрь какого-либо проекта

Код: Выделить всё

php composer.phar create-project --prefer-dist laravel/laravel APP_NAME
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Запуск локального сервера

Если проект назван itproger
Переходим в папку проекта:

Код: Выделить всё

cd itproger
Запускаем сервер

Код: Выделить всё

php artisan serve --host=0.0.0.0 --port=8080
Команда php artisan serve подходит для разработки, а не для продакшена. Для продакшена рекомендуется использовать более надежные серверные решения, такие как Nginx или Apache.
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Установка зависимостей:
npm - пакетный менеджер для Node.js

Код: Выделить всё

sudo apt install npm
After this operation, 445 MB of additional disk space will be used.

Переходим в проект и устанавливаем все зависимости

Код: Выделить всё

cd itproger
npm i
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

конфиги:

.env : основной конфигурационный файл проекта глобальных настроек
composer.json : Бэкэнд зависимости
package.json : Фронтэнд зависимости
phpunit.xml : характеристики тестирования проекта
webpack.mix.js : Способ преобразования всех js и css файлов

Код: Выделить всё

const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
	.sass('resources/sass/app.scss', 'public/css')
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Создайте таблицу сессий с помощью миграции

Код: Выделить всё

php artisan session:table
Это создаст файл миграции для таблицы sessions. Потом выполните миграцию

Код: Выделить всё

php artisan migrate
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Вывод шаблона маршрута на адрес /about

route/web.php

Код: Выделить всё

<?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/about', function () {
    return view(view: 'about');
});
Шаблон about
resources/wiews/about.blade.php

Код: Выделить всё

<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF=8">
    <meta name="viewport"
        content="widht=device-width, user-scalabre=no, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
    <h1>Привет</h1>
</html>
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Получение параметров из url-адреса
route/web.php

Код: Выделить всё

<?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/about', function () {
    return view(view: 'about');
});

Route::get('/user/{id}/{name}', function ($id, $name) {
    return 'ID: '. $id .'.Name: '. $name;
});

ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Подключение стилей
https://getbootstrap.com

Установка зависимостей

Код: Выделить всё

npm init -y
npm install laravel-mix --save-dev
npm install bootstrap --save
Запуск сборки Перейти в каталог проекта и установить bootstrap

Код: Выделить всё

npm i bootstrap
resources/css/app.css добавить в начало файла

Код: Выделить всё

/* resources/css/app.css */
@import "bootstrap/dist/css/bootstrap.min.css";
Обновите файл webpack.mix.js, чтобы скомпилировать ваши стили

Код: Выделить всё

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
   .postCss('resources/css/app.css', 'public/css', [
       // Можно добавить плагины PostCSS, если нужно
   ]);
Запустите сборку ассетов:

Код: Выделить всё

npm run dev
или для режима разработки автоматически:

Код: Выделить всё

npm run watch
Подключите скомпилированные стили в ваш Blade-шаблон, например в resources/views/layout.blade.php:

Код: Выделить всё

<link href="{{ mix('css/app.css') }}" rel="stylesheet">
Убедитесь, что у вас подключен скрипт app.js, если используете его, в шаблоне:

Код: Выделить всё

<script src="{{ mix('js/app.js') }}"></script>
После этого Bootstrap будет подключен к вашему проекту Laravel, и вы сможете использовать его классы в ваших шаблонах.
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Ошибка `ENOSPC: System limit for number of file watchers reached` означает, что в вашей системе достигнут лимит на количество файловых наблюдателей (watchers), которые могут одновременно использоваться для слежения за файлами. Это распространенная проблема при использовании инструментов вроде Vite, Webpack или других систем, отслеживающих изменения файлов.

### Как решить проблему ENOSPC

#### Вариант 1: увеличить лимит наблюдателей

Для систем на базе Linux (например, Devuan, Ubuntu и т.п.):

1. Откройте или создайте файл `/etc/sysctl.conf` (или используйте команду):

```bash
sudo nano /etc/sysctl.conf
```

2. Добавьте или измените строку:

```conf
fs.inotify.max_user_watches=524288
```

Это увеличит лимит до 524288.

3. Примените изменения:

```bash
sudo sysctl -p
```

4. Проверьте, что лимит поднят:

```bash
cat /proc/sys/fs/inotify/max_user_watches
```

Это должно вернуть новое значение.

#### Вариант 2: временно изменить лимит (до перезагрузки)

Можно выполнить команду:

```bash
sudo sysctl -w fs.inotify.max_user_watches=524288
```

Это сбросится при перезагрузке, поэтому рекомендуется внести в `/etc/sysctl.conf`.

#### Вариант 3: перезапустить проект

После увеличения лимита перезапустите команду:

```bash
npm run dev
```

или:

```bash
npx vite
```

### Итог

- Увеличьте лимит `fs.inotify.max_user_watches`.
- Перезапустите ваш dev-сервер.

Это должно решить проблему с ошибкой ENOSPC.
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Ошибка говорит о том, что команда `npx mix` неправильно вызвана. В проекте для сборки с Laravel Mix используется команда `npm run dev` или `npx mix` (без расширения). Однако, чтобы использовать `npx` с Laravel Mix, нужно иметь соответствующий скрипт в `package.json`.

### Правильный порядок действий:

1. **Создайте файл `package.json`, если его ещё нет**

Если у вас его нет, выполните:

```bash
npm init -y
```

2. **Установите Laravel Mix и необходимые пакеты**

```bash
npm install laravel-mix --save-dev
npm install bootstrap --save
npm install webpack --save-dev
```

3. **Создайте файл `webpack.mix.js` в корне проекта**

Вот пример минимальной конфигурации:

```js
const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
require('postcss-import'),
]);
```

4. **Создайте файл `resources/css/app.css` и добавьте:**

```css
@import "bootstrap/dist/css/bootstrap.min.css";
```

5. **Добавьте скрипты в `package.json`**

Откройте `package.json` и добавьте раздел `scripts`, например:

```json
"scripts": {
"dev": "npm run development",
"development": "mix",
"watch": "mix watch",
"hot": "mix hot",
"prod": "npm run production",
"production": "mix --production"
}
```

6. **Запустите сборку:**

```bash
npm run dev
```

или для автоматической пересборки при изменениях:

```bash
npm run watch
```

---

### Итог:

- Не используйте `npx mix` — правильная команда: `npm run dev`.
- Убедитесь, что у вас есть файл `webpack.mix.js` и `package.json` с нужными скриптами.
- После этого все должно работать.

---

Если хотите быстро подключить Bootstrap без сборки — используйте CDN, добавив в шаблон:

```html
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
```

и

```html
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
```

Это самый быстрый способ, если сборка не обязательна.
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Установить недостающий модуль

Код: Выделить всё

npm install postcss-import --save-dev
package.json

Код: Выделить всё

{
  "private": true,
  "scripts": {
    "dev": "mix",
    "watch": "mix watch",
    "hot": "mix hot",
    "prod": "npm run production",
    "production": "mix --production"
  },
  "devDependencies": {
    "@tailwindcss/vite": "^4.0.0",
    "axios": "^1.8.2",
    "concurrently": "^9.0.1",
    "laravel-mix": "^6.0.49",
    "laravel-vite-plugin": "^1.2.0",
    "postcss-import": "^16.1.0",
    "tailwindcss": "^4.0.0",
    "vite": "^6.2.4"
  },
  "dependencies": {
    "bootstrap": "^5.3.6"
  },
  "name": "itproger",
  "description": "<p align=\"center\"><a href=\"https://laravel.com\" target=\"_blank\"><img src=\"https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg\" width=\"400\" alt=\"Laravel Logo\"></a></p>",
  "version": "1.0.0",
  "main": "vite.config.js",
  "directories": {
    "test": "tests"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
Собрать компоненты:

Код: Выделить всё

npm run dev
ya
^-^
Сообщения: 2535
Зарегистрирован: 16 дек 2021, 19:56

Re: Фреймворк laravel

Сообщение ya »

Использование стилей:
https://getbootstrap.com/ -> Examples -> Custom Components
Выбираем любой шаблонный проект, например Prising
Ответить