Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Рефакторил. Растет количество поглощаемой память и скорость выполнения:D
UP тему!
В конструкторе выполняю сбор данных об объекте!
public function __construct(Request $request){
parent::__construct();
if(!is_null($request->route('mid'))){
$this->meeting = DB::table('meetings')->where('mid',$request->route('mid'))->first();
if(!is_null($this->meeting)){
$this->meeting->bulletins = DB::table('meetings_bulletins')->where('mid',$this->meeting->mid)->get();
$this->meeting->data = DB::table('meetings_data')->where('mid',$this->meeting->mid)->pluck('value','key');
$this->meeting->members = DB::table('meetings_members')->where('mid',$this->meeting->mid)->get();
$this->meeting->promiser = DB::table('meetings_proms')->where('mid',$this->meeting->mid)->pluck('value','key');
}else{
return redirect('/')->send();
}
}
}
Есть классы наследуют этот класс! Содержащий данный конструктор!
И получается там происходит такой вызов
public function __construct(Request $request){
parent::__construct($request);
}
Не думаю что это правильное решение! Есть возможность из конструктора другим способом дернуть параметр mid не передавая по родству $request?
Не усложняю структуру себе)
вообще-то усложняешь и очень серьёзно. а уж про того, кому потом придётся поддерживать этот «велосипед с квадратными колёсами», я вообще молчу – боже помилуй его душу
У меня каждый блок отвечает за свой спектр работ) У меня идеальная структура с наименьшими затратами поиска кода и т. д.)
Ушел от проблемы путем создания в Welcome переменной $request = new Request;
Про POST) Я разово проверяю его в Welcome. Вся структура приложения в invoke(). Если GET - получай страницу, если POST значит обрабатываемые данные. Не усложняю структуру себе)
Версия Laravel: 5.4
Версия PHP: 5.6.30
Операционная система и её версия: Windows Server 2012R2
Вендор и версия сервера БД: MYSQL 5.6
Вендор и версия Веб-сервера: IIS 7.5
Медод подключения PHP: FastCGI
Задача, что должно происходить _в целом_, техническое задание:
Нужно выполнить parent::__construct(); В контроллере Request
Что произошло, текст ошибки, если есть:
Если внедрять переменную Request $request в конструктор и парент. То запредельно начинает кушать скрипт памяти.
Какие еще методы выполнить parent::__construct()?
Код:
app\Http\Controllers\Welcome.php
<?php
namespace App\Http\Controllers;
use App\SessionsDrupal;
use App\RolesUsers;
use Illuminate\Http\Request;
class Welcome extends Controller{
//Переменная для вида
public $template;
//Сcылки на личный кабинет
public $lk = [];
public function __construct(Request $request){
//Проверка на POST
$this->post = $request->isMethod('post');
}
.............
app\Http\Controllers\Request.php
<?php
namespace App\Http\Controllers;
class Request extends Welcome{
public function __construct(){
parent::__construct();
//var_dump($this->lk);
}
....
}
Код работает в лишнем месте USE WELCOME;)
Welcome.php
<?php
namespace App\Http\Controllers;
use App\SessionsDrupal;
use App\RolesUsers;
use Illuminate\Http\Request;
class Welcome extends Controller{
//Переменная для вида
public $template;
//Некий код
}
Request.php
namespace App\Http\Controllers;
class Request extends Welcome{
public function __invoke(){
$this->template->head_title = 'Я чайник';
}
}
Как унаследовать класс Welcome? Я в нем указываю кучу переменных
Надо замерить скорости) и как быстрей выполняеться и грузит меньше сервак тот и выбрать)
бросай Exception 404
Понял что это выполняет middleware не совсем понятно написано Before и After это 2 разных MiddleWare надо делать?
В Kohana были такие возможности как before и after! Которые выполнялись до основного действия и после! Есть ли такие в Laravel? Прочитал про жизненный цикл но так и не понял. Просто у меня сейчас вызывается контроллер который производит проверки, дальше я планирую обращаться уже к нужному контроллеру. А в конце надо сделать json_encode. В kohana я написал в after родителя) и все) а тут как реализовать данную схему?
Щас посмотрел и понял что Middleware мне воообще не нужен
Точнее часть связанная с авторизацией и сессиями, и куками) получилось закоментил 16-20, 29-31
попробуйте закоментить https://github.com/laravel/laravel/blob … el.php#L18 18 и 20 строки (CSRF)
Этим вы вообще "отрубите" сесии и CSRF не только для API, а для всей системы.Наиболее лучший способ, это расширить классы в Middleware (https://github.com/laravel/laravel/tree … Middleware) и поставить собственную логику обработки API.
Спасибо огромное за совет) Я в принципе хочу отказаться от кук и сессий я же пишу АПИ) так что CSRF мне не нужен) Я буду генирировать свой 32 символьный ключ который будет работать в течении суток)
Может в .env дергались настройки?)
Может кто скажет как их отключить? Вообще оставить чистую Laravel без сессий и кук)
И так юза Kohana и теперь ищу новый фреймворк, нужен такой чтоб сессии автоматический не запускал) Laravel еще не расскапокывал)
Но необходимы 3 простые вещи) Работа с MYSQL) и 100% отключение сессий) Сессии это нагрузка, а мне в проекте они не нужны)
Страницы 1