О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
Декодировать JSON
Локация
О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
Декодировать JSON
Локация
Приложения для Laravel
us.content
Если при установке приложения ошибка с памятью, то использовать этот код подставив нужное приложение: COMPOSER_MEMORY_LIMIT=-1 composer require name Использовать при разных версиях PHP composer-php8.2 Debugbar Удобная панель для debug. https://github.com/barryvdh/laravel-debugbar Запустите команду в терминале. composer require barryvdh/laravel-debugbar --dev Filesystem s3 Для работы с s3 composer require league/flysystem-aws-s3-v3 Phone https://packagist.org/packages/propaganistas/laravel-phone Запустите команду в терминале. composer require propaganistas/laravel-phone $phone = new PhoneNumber($phone); $phone->formatE164(), // +79999999999 $phone->formatNational(), // 8 (999) 999-99-99 $phone->formatInternational() // +7 999 999-99-99 $phone->isOfCountry('RU') // true in_array($phone->getCountry(), ['RU']) // true Google ReCaptcha https://github.com/google/recaptcha https://packagist.org/packages/google/recaptcha Запустите команду в терминале. composer require google/recaptcha Laravel log viewer Удобная просмотрщик файлов логов. https://github.com/rap2hpoutre/laravel-log-viewer Запустите команду в терминале. composer require rap2hpoutre/laravel-log-viewer Ниже описаны действия, которые уже должны быть сделаны, если устанавливали по инструкции, тогда это не делать! В routes/web.php прописать: Route::get('/logs', '\Rap2hpoutre\LaravelLogViewer\LogViewerController@index'); Скопировать вид: resources/views/vendor/laravel-log-viewer/log.blade.php spatie/laravel-permission https://packagist.org/packages/spatie/laravel-permission https://github.com/spatie/laravel-permission https://spatie.be/docs/laravel-permission/v3/introduction composer require spatie/laravel-permission В файле app/Http/Kernel.php добавить: protected $routeMiddleware = [ // ... // Добавляем 'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class, 'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class, 'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class, ]; Создать и запустить миграцию php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" php artisan migrate Использование: $role = \Spatie\Permission\Models\Role::create(['name' => 'admin']); $role = Role::create(['name' => 'user']); // Создать роль $user->assignRole('user'); // Присвоить роль if (auth()->user()->hasRole('admin')) {} // Проверить у пользователя роль Admin @role('admin') I admin @endrole auth()->user()->getRoleNames(); // Получить все названия ролей auth()->user()->roles->pluck('id'); // Получить все id ролей User::role(['admin', 'user'])->get(); // Получить пользователей определённых ролей Создать маршрут с Middleware для роли Admin Route::group(['middleware' => ['role:admin|editor']], function () { // }); Spatie/laravel-html Строитель HTML. https://packagist.org/packages/spatie/laravel-html https://github.com/spatie/laravel-html https://spatie.be/docs/laravel-html/v2/introduction Запустите команду в терминале. composer require spatie/laravel-html Использование: {{ html()->form('post', '/url')->class('validate')->open() }} {{ html()->div()->class('form-group')->open() }} {{ html()->label(__('a.title'))->child(html()->element('sup')->text(' *'))->attributes(['for' => 'title']) }} {{ html()->text('title')->class('form-control')->placeholder(__('a.title'))->value($values->title ?? null)->required() }} {{ html()->div()->close() }} {{ html()->form()->close() }} Spatie/laravel-backup Резервное копирование файлов и базы данных. https://packagist.org/packages/spatie/laravel-backup https://github.com/spatie/laravel-backup https://docs.spatie.be/laravel-backup/v6/installation-and-setup https://packagist.org/packages/spatie/nova-backup-tool Запустите команду в терминале. composer require spatie/laravel-backup Команда в терминал, чтобы появился config/backup.php. php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider" В файле config/backup.php: 'mail' => [ 'to' => env('APP_EMAIL'), ], Использование, запустите команду в терминале: php artisan backup:run - резервное копирование и дамп. php artisan backup:run --only-db - только дамп. php artisan backup:run --only-files - только резервное копирование. spatie/laravel-activitylog Регистратор активности для мониторинга пользователей приложения https://github.com/spatie/laravel-activitylog https://packagist.org/packages/spatie/laravel-activitylog https://spatie.be/docs/laravel-activitylog/v4/introduction Запустите команду в терминале. composer require spatie/laravel-activitylog Миграция и конфиг php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="activitylog-migrations" php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="activitylog-config" Если не сработали верхнии команды, то запустить эти: php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="migrations" php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="config" Запустить php artisan migrate Использование: Сохранить действие или событие activity() ->performedOn(User::find(1)) ->withProperties(['customProperty' => 'customValue']) ->useLog('tag') ->log('Text for save'); Показать последнее $lastLoggedActivity = \Spatie\Activitylog\Models\Activity::all()->last(); dump($lastLoggedActivity); diglactic/laravel-breadcrumbs Хлебные крошки https://packagist.org/packages/diglactic/laravel-breadcrumbs https://github.com/diglactic/laravel-breadcrumbs Запустите команду в терминале: composer require diglactic/laravel-breadcrumbs Использование: // Home Breadcrumbs::for('home', function ($trail) { $trail->push('Home', route('home')); }); // Home > Blog Breadcrumbs::for('blog', function ($trail) { $trail->parent('home'); $trail->push('Blog', route('blog')); }); // Home > Blog > [Category] Breadcrumbs::for('category', function ($trail, $category) { $trail->parent('blog'); $trail->push($category->title, route('category', $category->id)); }); // Home > Blog > [Category] > [Post] Breadcrumbs::for('post', function ($trail, $post) { $trail->parent('category', $post->category); $trail->push($post->title, route('post', $post->id)); }); if (Breadcrumbs::exists('app')) {} // Можно так проверить lazychaser/laravel-nestedset Nested Set pattern for Eloquent models Строитель деревьев в БД https://packagist.org/packages/kalnoy/nestedset https://github.com/lazychaser/laravel-nestedset Запустите команду в терминале: composer require kalnoy/nestedset // В миграцию добавить: // For lazychaser/laravel-nestedset $table->bigInteger('_lft')->unsigned()->default('0'); $table->bigInteger('_rgt')->unsigned()->default('0'); $table->bigInteger('parent_id')->unsigned()->nullable(); $table->index(['_lft', '_rgt', 'parent_id']); // В модель добавить: use Kalnoy\Nestedset\NodeTrait; // Во внутрь класса use NodeTrait; // Получить дерево для id 2 $node = \App\Models\Menu::descendantsOf(2)->toTree(); // Получаем всех родителей $ancestors = $menu?->ancestors?->pluck('id'); // ?->contains($value) есть ли значение // Получаем всех потомков $descendants = $menu?->descendants?->pluck('id'); barryvdh/laravel-ide-helper Помощник, показывающий методы. Устанавливается для dev разработки. https://packagist.org/packages/barryvdh/laravel-ide-helper https://github.com/barryvdh/laravel-ide-helper Запустите команду в терминале: composer require --dev barryvdh/laravel-ide-helper // Делаем генерации php artisan ide-helper:generate php artisan ide-helper:meta php artisan ide-helper:models -N Maatwebsite/Laravel-Excel Приложение для импорта, экспорта базы данных в файл эксель. https://github.com/Maatwebsite/Laravel-Excel https://docs.laravel-excel.com/3.1/getting-started/installation.html Запустите команду в терминале. composer require maatwebsite/excel Создадим конфиг в терминале: php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" Ниже описаны действия, которые уже должны быть сделаны, если устанавливали по инстукции, тогда это не делать! Добавим маршруты: Route::get('import-export', 'Admin\importExportController@view'); Route::get('export', 'Admin\importExportController@export')->name('export'); Route::post('import', 'Admin\importExportController@import')->name('import'); Создадим модель Import кодандой: php artisan make:import ProductsImport --model=Product Создадим модель Export кодандой: php artisan make:export ProductsExport --model=Product Создадим контроллер кодандой: php artisan make:controller Admin/ImportExportController Скопировать из сделанных код и прописать свои колонки в таблице. Эксель Excel в эту библиотеку входит Maatwebsite https://docs.laravel-excel.com/ https://filamentphp.com/plugins/pxlrbt-excel https://filamentphp.com/plugins/eightynine-excel-import Laravel File Manager Файловый менеджер. https://webmai.ru/projects/file-manager https://github.com/alexusmai/laravel-file-manager Запустите команду в терминале. composer require alexusmai/laravel-file-manager Запустите команду в терминале. php artisan vendor:publish --tag=fm-config В config/file-manager.php поменять: 'diskList' => [ 'app', 'config', 'public_folder', 'resources', 'routes', ], 'middleware' => ['web', 'auth', 'admin'], Ниже описаны действия, которые уже должны быть сделаны, если устанавливали по инструкции, тогда это не делать! Файлы проекта по команде: php artisan vendor:publish --tag=fm-assets Подключаем стили Bootstrap 4 и FontAwesome 5. В head: <link rel="stylesheet" href="@{{ asset('vendor/file-manager/css/file-manager.css') }}"> В footer: <script src="@{{ asset('vendor/file-manager/js/file-manager.js') }}"></script> В вид вставить этот код: <div style="height: 600px;"> <div id="fm"></div> <div> Mobile Detect Определение мобильного устройства через php http://mobiledetect.net/ Запустите команду в терминале. composer require mobiledetect/mobiledetectlib Использование: $detect = new \Mobile_Detect(); $isMobile = $detect->isMobile(); $isTablet = $detect->isTablet(); Intervention Image resize Ресайз картинок https://github.com/Intervention/image http://image.intervention.io/getting_started/installation https://packagist.org/packages/intervention/image Запустите команду в терминале. composer require intervention/image Использование: use Intervention\Image\ImageManagerStatic as Image; // Пространство имён $image = $request->file('image'); $filename = $image->getClientOriginalName(); $img = Image::make($image->getRealPath()); $img->resize(1280, 1280, function ($constraint) { $constraint->aspectRatio(); }); $img->save(public_path('images/' .$filename)); bumbummen99/LaravelShoppingcart Корзина для магазина https://github.com/bumbummen99/LaravelShoppingcart https://packagist.org/packages/bumbummen99/shoppingcart Запустите команду в терминале. composer require bumbummen99/shoppingcart Конфиг php artisan vendor:publish --provider="Gloudemans\Shoppingcart\ShoppingcartServiceProvider" --tag="config" Использование: // В config.cart.tax установить 0 если не нужно налог считать $product = Product::find(1); $qty = 1; $rowId = '027c91341fd5cf4d2579b49c4b6a90da'; // Id в корзине Cart::add($product->id, $product->title, $qty, $product->price, $product->weight ?: 0); // Добавить товар Cart::update($rowId, $qty); // Обновить кол-во товара Cart::remove($rowId); // Удалить товар Cart::destroy(); // Удалить всю корзину Cart::content(); // Содержимое корзины Cart::content()->contains('rowId', $rowId); // Если ли в корзине rowId или также можно проверить по id товара Cart::content()->pluck('id'); // Получить все id товаров в корзине Cart::get($rowId); // Получить товар Cart::total(); // Общая сумма в корзине Cart::count(); // Общее кол-во товаров в корзине foreach (Cart::content() as $rowId => $value) { dump($rowId, $value); } Php curl class Класс для курл запросов https://github.com/php-curl-class/php-curl-class Запустите команду в терминале. composer require php-curl-class/php-curl-class Использование: $curl = new Curl(); $curl->get('https://www.example.com/'); if ($curl->error) { echo 'Error: ' . $curl->errorCode . ': ' . $curl->errorMessage . "\n"; } else { echo 'Response:' . "\n"; var_dump($curl->response); } $curl->post('https://www.example.com/login/', [ 'username' => 'myusername', 'password' => 'mypassword', ]); $curl = new Curl(); $curl->setBasicAuthentication('username', 'password'); $curl->setUserAgent('MyUserAgent/0.0.1 (+https://www.example.com/bot.html)'); $curl->setReferrer('https://www.example.com/url?url=https%3A%2F%2Fwww.example.com%2F'); $curl->setHeader('X-Requested-With', 'XMLHttpRequest'); $curl->setCookie('key', 'value'); $curl->get('https://www.example.com/'); Spatie/schema-org Класс конструктор для разметки schema.org https://packagist.org/packages/spatie/schema-org Запустите команду в терминале. composer require spatie/schema-org Laravel-HTMLMin Сжимает html разметку https://github.com/HTMLMin/Laravel-HTMLMin Запустите команду в терминале. composer require htmlmin/htmlmin Приложение для Telegram https://github.com/irazasyed/telegram-bot-sdk https://telegram-bot-sdk.readme.io/docs Запустите команду в терминале. composer require irazasyed/telegram-bot-sdk Использование: /* * Найти в поиске Telegram @BotFather и написать ему - \newbot * Name - название. * Name_bot - название бота. * https://api.telegram.org/botTELEGRAM_TOKEN/setWebHook?url=https://site.ru/TELEGRAM_TOKEN/telegram - добавить веб хук для телеграмм. * На сайте сделать обработчик. */ use Telegram\Bot\Api; $telegram = new Api('TELEGRAM_TOKEN'); // Ловим запрос от Telegram $update = $telegram->getWebhookUpdate(); // Логируем //File::append(public_path('telegram/log.txt'), print_r($update, 1)); //file_put_contents(__DIR__ . '/telegram/log.txt', print_r($update, 1), FILE_APPEND); // Данные $chatId = $update['message']['chat']['id'] ?? null; $name = $update['message']['from']['first_name'] ?? null; $text = $update['message']['text'] ?? null; $data = [ 'chat_id' => $chatId, ]; // Изменяемые данные $method = 'sendMessage'; $data += [ 'text' => "Привет, {$name}! Вы написали: <b>{$text}</b>", 'parse_mode' => 'HTML', ]; // Отправляем if ($chatId) { $res = $telegram->$method($data); } Отправка и удаление видео на Youtube https://github.com/joedawson/youtube Запустите команду в терминале. composer require dawson/youtube Иструкция на github и https://github.com/JoeDawson/youtube/issues/77 // Отправить файл на Minio composer require aws/aws-sdk-php $s3 = new \Aws\S3\S3Client([ 'version' => 'latest', 'region' => getenv('MINIO_REGION'), 'endpoint' => getenv('MINIO_ENDPOINT'), 'use_path_style_endpoint' => true, 'credentials' => [ 'key' => getenv('MINIO_ACCESS_KEY'), 'secret' => getenv('MINIO_SECRET_KEY'), ], ]); try { $result = $s3->putObject([ 'Bucket' => getenv('MINIO_BUCKET'), 'Key' => 'test.txt', 'Body' => 'Hello, world!', //'ACL' => 'public-read', // Опционально: установите права доступа к файлу ]); dd('Файл успешно загружен в Minio'); } catch (\Aws\Exception\AwsException $e) { dd($e->getMessage()); } // Определение локации https://github.com/ipinfo/php // Проверка кода composer require squizlabs/php_codesniffer --dev vendor/bin/phpcs --standard=PSR12 /path/to/app // Файл в корне phpcs.xml <?xml version="1.0"?> <!-- @see https://pear.php.net/manual/en/package.php.php-codesniffer.annotated-ruleset.php --> <ruleset name="Laravel PHPCS Rules"> <description>PHPCS ruleset for Example app.</description> <file>tests</file> <file>app</file> <arg name="basepath" value="."/> <!-- Show progress of the run --> <arg value="p"/> <!-- Show sniff codes in all reports --> <arg value="s"/> <rule ref="PSR1.Methods.CamelCapsMethodName.NotCamelCaps"> <exclude-pattern>app/</exclude-pattern> <exclude-pattern>tests/</exclude-pattern> </rule> <rule ref="PSR12"> <exclude name="PSR2.Classes.PropertyDeclaration.Underscore"/> <exclude name="PSR2.Methods.MethodDeclaration.Underscore"/> <exclude name="PSR12.Traits.UseDeclaration.MultipleImport"/> <exclude name="PSR12.Classes.ClassInstantiation.MissingParentheses"/> <exclude name="PSR12.Files.FileHeader.SpacingAfterBlock"/> <exclude name="PSR12.Operators.OperatorSpacing.NoSpaceBefore"/> <exclude name="PSR12.Operators.OperatorSpacing.NoSpaceAfter"/> </rule> <rule ref="Generic.Files.LineLength"> <properties> <property name="lineLimit" value="160"/> <property name="absoluteLineLimit" value="200"/> </properties> </rule> </ruleset> Meilisearch Полнотекстовый поиск https://blog.meilisearch.com/laravel-full-text-search/
Список