Работаю преимущественно на C#, Php, Python Есть встроенная поддержка разных языков, логирования, работа с разными бд. Можно также добавить поддержку каких то других технологий , все зависит от ваших пожеланий и технического задания.
О беспечу эффективную производительность работы,Особенно при работе с бд.
Tg боты
Tg админки
Tg бот чаты
Не буду перечислять весь перечень где может быть задействован в автоматизации tg бот
Быстро,качественно,сердито ,имею собственные библиотеки,кучу готовых технологий.
TG:
@Davearchi
Discord:
#davearchi
TOX:
5EB15E13FFFD269F9185C29715D7B83B9B552975A62BC4B0D5BBFF7AF25819279A3FEDAD41A9
]]>Understanding E-Learning Ads Networks
E-Learning Ads Networks are platforms specifically designed to connect advertisers in the e-learning industry with publishers who host educational content. These networks serve as intermediaries, facilitating the placement of targeted advertisements on relevant websites and platforms. By leveraging E-Learning Ads Networks, educators and institutions can increase their visibility and attract more learners to their online courses and programs.
Пытаюсь подключить TW Elements к Laravel 8. Всё делаю строго по документации. Чтобы не думалось, даже начал пустой проект.
Но в результате не подгружаются JS скрипты необходимые для работы TW Elements.
Что у меня получилось:
Файл postcss.config.js
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
Файл tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./resources/**/*.blade.php",
"./resources/**/*.js",
"./resources/**/*.vue",
"./node_modules/tw-elements/dist/js/**/*.js"
],
theme: {
extend: {},
},
darkMode: "class",
plugins: [require("tw-elements/dist/plugin.cjs")]
}
Файл webpack.mix.js
const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
//
]);
Файл resources/css/app.css
@import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,900&display=swap");
@tailwind base;
@layer base {
html {
@apply text-[#4f4f4f];
}
html.dark {
@apply text-neutral-50;
@apply bg-neutral-800;
}
}
@tailwind components;
@tailwind utilities;
Файл resources/js/app.js
require('./bootstrap');
import 'tw-elements';
import { Tooltip, initTE } from "tw-elements";
initTE({ Tooltip });
Работа команды npm run dev проходит гладко, ошибок нет. Бандлы создаются.
Но при попытке открыть страницу в консоли JS я вижу следующие ошибки:
app.js:24157 Uncaught TypeError: Cannot read properties of null (reading 'appendChild')
at De (app.js:24157:37)
at ./node_modules/tw-elements/dist/js/tw-elements.es.min.js (app.js:24163:20)
at __webpack_require__ (app.js:35758:42)
at ./resources/js/app.js (app.js:2065:69)
at __webpack_require__ (app.js:35758:42)
at app.js:36032:64
at __webpack_require__.O (app.js:35795:23)
at app.js:36034:53
at app.js:36036:12
И вот тут у меня затык.
Буду признателен за помощь.
]]>Создаю модель SettingsModel, миграцию под нее, сидер. Потом создаю middleware под названием LoadSettingsFromDatabase и регаю его глобально в app/Http/Kernel.php. Код app/Http/Middleware/LoadSettingsFromDatabase.php следующий:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Models\SettingsModel;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log;
class LoadSettingsFromDatabase
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
if (!Cache::has('settings')) {
$settings = SettingsModel::all();
foreach ($settings as $setting) {
config(['settings.'.$setting->key => $setting->value]);
}
Cache::put('settings', $settings, 5);
Log::alert('read settings from database');
} else {
$settings = Cache::get('settings');
foreach ($settings as $setting) {
config(['settings.'.$setting->key => $setting->value]);
}
Log::alert('settings loaded from cache');
}
return $next($request);
}
}
Для теста в шаблоне главной страницы пишу:
{{ config('settings.theme') }}
Собственно, что выводит мне bootstrap5-theme. В логах storage/logs/laravel.log наблюдаю с одного запроса:
[2024-02-09 12:03:48] local.ALERT: read settings from database
[2024-02-09 12:03:48] local.ALERT: settings loaded from cache
[2024-02-09 12:03:48] local.ALERT: settings loaded from cache
app/Models/SettingsModel.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SettingsModel extends Model
{
use HasFactory;
protected $table = 'settings';
protected $fillable = ['key', 'value'];
}
database/migrations/2024_02_09_112339_create_settings_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('settings', function (Blueprint $table) {
$table->id();
$table->string('key');
$table->string('value');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('settings');
}
};
database/seeders/SettingsSeeder.php
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\SettingsModel;
class SettingsSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
SettingsModel::create([
'key' => 'theme',
'value' => 'bootstrap5-theme'
]);
}
}
Ну а глобальную регу мидлваря производим в app/Http/Kernel.php, тут:
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\LoadSettingsFromDatabase::class, // <---------- тут
];
Ну вот и все.
]]>Всем привет, коллеги! Ищем backend-разработчиков на Laravel с опытом от 1.5-2-х лет на постоянное сотрудничество в нашей компании.
Формат работы: удаленно
Занятость: full time
Зарплатная вилка от 120 000 до 200 000 рублей/мес на руки (определяется индивидуально в соответствии со скилом) + дополнительная финансовая поддержка на спорт, обучение, переезд, лечение.
Варианты трудоустройства:
- по ТК РФ
- самозанятость (СЗ) | ИП
Граждаство РФ!
Если заинтересовало и хотели бы продолжить общение, пишите по любым вопросам❤
@kkkateee19
Поставили задачу выделить отдельные сервисы по каждой области приложения. Например, TaskService.
Task это у меня модель заданий.
По сути все дейсвтия создание, редактирование, удаление, проверка задания автоматическая и ручная прописаны в TaskController, что надо выносить в сервисы, какой именно функционал?
Можете подсказать ? Можете пример приведете
в роуте было:
Route::get('/', 'IndexController')->name('index');
переделал на:
Route::get('/', [IndexController::class, '__invoke'])->name('index');
и всё заработало
]]>