These are chat archives for LaravelRUS/chat

4th
Jul 2015
4502040
@4502040
Jul 04 2015 04:00
@GamePostOFF , Middleware
Andrey Helldar
@andrey-helldar
Jul 04 2015 04:35
@jhaoda вчера свет вырубили дома. Ща проверю. dd не смотрел
Andrey Helldar
@andrey-helldar
Jul 04 2015 04:46
@GamePostOFF вот так:
Fibd::where('author', '=', \Auth::user()->id)->orderBy('id', 'DESC')->get();
Andrey Helldar
@andrey-helldar
Jul 04 2015 05:21
@jhaoda с передачей параметра в Route::get проблем нет - все работает, а вот с view::composer беда - не хочет и все тут(
Делал вывод dd - выводится структура. Если обращаюсь к конкретному ключу, получаю ошибку, что [Illuminate\Routing\Router Object] не может работать как массив
Andrey Helldar
@andrey-helldar
Jul 04 2015 08:24

@jhaoda временно решил свою проблему костылем...

Route::group(['prefix' => '{page}'], function() {
    View::composer('*', function($view) {
        $page = array_first(explode('/', Request::path()), function($key, $value) {
            return $value;
        });
        $view->with('page', $page);
    });
});

Работает)

mpg756
@mpg756
Jul 04 2015 08:44
добрый день, только разбираюсь с фрейморком, не могу понять, как инстанциировать класс, с передачей параметров в конструктор. Создал в новый класс-провайдер, там в метод public function register()
{
$this->app->bind('smart', function(Phone\Processor $processor, Phone\Display $display, Phone\Camera $camera, Phone\Battery $battery){
return new Phone\Smartphone($processor,$display,$camera,$battery);
});
}
при попытке вызвать из роута
Route::get('/phone', function(){
echo App::make('smart');
});
вылезает много ошибок
mpg756
@mpg756
Jul 04 2015 08:55
понял, ошибка у меня в этом месте
$this->app->bind('smart', function(Phone\Processor $processor, Phone\Display $display, Phone\Camera $camera, Phone\Battery $battery){
            return new Phone\Smartphone($processor,$display,$camera,$battery);
        });
как передавать параметры в анонимную ф-ю, если эти параметры это экземпляры классов?
Роман Сохарев
@greabock
Jul 04 2015 08:58
@AndreyHelldar о боги. Зачем ты композер в роутах опредлеил? =)
Andrey Helldar
@andrey-helldar
Jul 04 2015 08:59
@greabock а где надо?
Где-то в Инете нашел похожее решение, вот и использую
Роман Сохарев
@greabock
Jul 04 2015 09:01
@AndreyHelldar это не решение
Композеры нужно определять в провайдерах
Это во-превых
А во-вторых. У тебя вообще какая-то бабуйня происходит )
Andrey Helldar
@andrey-helldar
Jul 04 2015 09:12
@greabock как смог, так сделал)
В задумке есть адрес, например, http://mysite.ru/page/news, где "page" - динамический параметр
Надо, чтобы из строки читался параметр "page" и передавался во все вьюхи (View::composer('*')...)
JhaoDa
@jhaoda
Jul 04 2015 09:12
А я намекал, да...
Роман Сохарев
@greabock
Jul 04 2015 09:13

@AndreyHelldar

Надо, чтобы из строки читался параметр "page" и передавался во все вьюхи (View::composer('*')...)

для этого существует реквест, в котором лежит роут

инвершн аф кантрол, понмаешь ли =)
Andrey Helldar
@andrey-helldar
Jul 04 2015 09:15
@greabock $request->path() что ли?
Другие пути перебирал - нигде не встречал
и тот выдаст "page/news" на выходе
Роман Сохарев
@greabock
Jul 04 2015 09:16
буквально вчера или позавчера этот вопрос поднимали
Роман Сохарев
@greabock
Jul 04 2015 09:32

извините, я отходил...

$request->route()->getCurrentRoute()->getParameter('page');

есть ряд нюансов, но мне сейчас некогда - на работу бегу

JhaoDa
@jhaoda
Jul 04 2015 09:33
На работу? В субботу под вечер?
Orel
@2byte
Jul 04 2015 09:34
@jhaoda под обед
JhaoDa
@jhaoda
Jul 04 2015 09:35
@2byte тут не все с-под Мааасквы
Orel
@2byte
Jul 04 2015 09:35
@jhaoda ну я тоже не с под Москвы
JhaoDa
@jhaoda
Jul 04 2015 09:36
У @greabock щас 15:36, какой обед?
Andrey Helldar
@andrey-helldar
Jul 04 2015 09:37

@greabock перечитал сообщения. Видимо пропустил что-то.
Убрал из роутов View::composer и привел функцию "boot" в файле "app/Providers/RouteServiceProvider.php" к виду:

    public function boot(Router $router) {
        parent::boot($router);

        $this->app->view->composer('*', function($view) use ($router) {
                $view->with('page', 'page');
        });
    }

Так работает, а если явно указать:

    public function boot(Router $router) {
        parent::boot($router);

        $this->app->view->composer('*', function($view) use ($router) {
            $view->with('page', $request->route()->getCurrentRoute()->getParameter('page'));
        });
    }

То на выходе получаем ошибку "Undefined variable: request"

И даже если прописать

dd($router->getCurrentRoute()->getParameter('page'));

выходит ошибка "Call to a member function getParameter() on null"

Роман Сохарев
@greabock
Jul 04 2015 09:43
@jhaoda поход на работу откладывается - на улице ливень
JhaoDa
@jhaoda
Jul 04 2015 09:43
@AndreyHelldar слушай, ты странный какой-то. Юзаешь несуществующую переменную и еще удивляешься
Роман Сохарев
@greabock
Jul 04 2015 09:45

@AndreyHelldar
$view->with('page', $request->route()->getCurrentRoute()->getParameter('page'));

откуда взялся реквест? =)

Maxim
@Big-Shark
Jul 04 2015 09:45
@greabock вот это работа, чтоб мне разрешали непризоодить на работу при плохой погоде)
Роман Сохарев
@greabock
Jul 04 2015 09:45
@Big-Shark суббота жЫ
Andrey Helldar
@andrey-helldar
Jul 04 2015 09:45
@greabock вот и я не понимаю откуда он возьмется в RouteServiceProvider )) Уже голову сломал
Роман Сохарев
@greabock
Jul 04 2015 09:45
таксю вызову...
Andrey Helldar
@andrey-helldar
Jul 04 2015 09:47
@greabock пойду еще подумаю
JhaoDa
@jhaoda
Jul 04 2015 09:50
@AndreyHelldar ты этот $request туда передал? Нет. Через IoC получал? Нет. Через app(), может быть? Снова нет. Так чего ж ты удивляешься?
Andrey Helldar
@andrey-helldar
Jul 04 2015 09:54
Заработала, что б ее))
    public function boot(Router $router) {
        parent::boot($router);

        $this->app->view->composer('*', function($view) use ($router) {
            $view->with('page', $router->getCurrentRoute()->getParameter('page'));
        });
    }
@jhaoda верно говоришь - не передавал)
Andrey Helldar
@andrey-helldar
Jul 04 2015 10:00
@greabock @jhaoda сэнк за подсказки)
Роман Сохарев
@greabock
Jul 04 2015 10:02
ну пусть будет так...
всем удачи - я свалил
Artemy
@lartie
Jul 04 2015 10:19
Привет все.
У кого нибудь были проблемы с установкой socialite?
На 5.1
Roman
@TeroBlaZe
Jul 04 2015 11:35
что за нахрен ответ такой? Да он офигел. laravel/framework#9520
Mokhirjon Naimov
@zvermafia
Jul 04 2015 12:50
Всем привет :)
Роман Сохарев
@greabock
Jul 04 2015 12:50
Здрасте
Mokhirjon Naimov
@zvermafia
Jul 04 2015 12:50
:)
Роман Сохарев
@greabock
Jul 04 2015 12:50
:smile:
Mokhirjon Naimov
@zvermafia
Jul 04 2015 12:51
@greabock помогите с этим
Nikita
@exotickg1
Jul 04 2015 13:17
Чего-то запустить Homestead не могу.
Роман Сохарев
@greabock
Jul 04 2015 13:19
@zvermafia напиши автору на гитхабе - он русский
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:20
@greabock спасибо
Роман Сохарев
@greabock
Jul 04 2015 13:20
@zvermafia а пока можешь воспользоваться "затычкой"
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:21
->where('lang', $lang)?
Роман Сохарев
@greabock
Jul 04 2015 13:21
$roots = $category->getRoots()->where('lang', $lang);
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:21
$roots = $category->getRoots()->where('lang', $lang);
Роман Сохарев
@greabock
Jul 04 2015 13:22
ну типа того
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:22
@greabock @2byte спасибо
:)
@greabock извиняюсь, я еще не очень. issue написать?
Роман Сохарев
@greabock
Jul 04 2015 13:24
сложно сказать... он на гх не слишком быстро отвечает
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:25
Не просто надо через issue или есть еще какое-то другой вариант?
This message was deleted
Роман Сохарев
@greabock
Jul 04 2015 13:25
вообще да - так положено
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:25
OK
spasibo
Orel
@2byte
Jul 04 2015 13:26
@zvermafia в вк лучше ему напиши )
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:26
Я не использую вк :(
лучше на GitHub
Роман Сохарев
@greabock
Jul 04 2015 13:28
хм...

а попробуйка вот так:

public function lang()
{
        $lang = \App::getLocale();
        return $this->whereLang($lang);
}

=) @zvermafia

Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:31
Это в модел писать?
@greabock
Роман Сохарев
@greabock
Jul 04 2015 13:31
да
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:31
OK, ща
@greabock не, не работает
@greabock Ошибку выдает, который написан на toster'e
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:40
@greabock В смысле? :) я не понял
Роман Сохарев
@greabock
Jul 04 2015 13:40
проблема в том, что это новый инстанс
поможет только Global Scope
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:42
public function scopeLang($query)
{
        $lang = \App::getLocale();

        return $query->where('lang', $lang);
}
@greabock так?
Роман Сохарев
@greabock
Jul 04 2015 13:43
нет
это query scope
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:43
другово не знаю, обясните пожалуйста...
Andrey Fedotov
@protectedfor
Jul 04 2015 13:44
как сделать выборку "следующей записи"? Например делаю выборку Work::find(2) как получить следующую запись, т.е. 3?
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:44
в доке тока query scpoes написано же
@protectedfor Work::find([2, 3]) ?
Marina
@marina16
Jul 04 2015 13:45
ку)как сделать так чтобы homestead вызывался глобально с любого места( (убунту)как прописать его в пути?
Роман Сохарев
@greabock
Jul 04 2015 13:46
@marina16 удалить убунту, поставить опенсервер, не знать проблем
Andrey Fedotov
@protectedfor
Jul 04 2015 13:46
уточню запрос: Work::where('slug', '=', 'slug-of-any-work')->first() - придет запись. Как сделать выборку следующей за ней записи?
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:47
Роман Сохарев
@greabock
Jul 04 2015 13:47
@zvermafia странно, глобал скоупы в 5.1 не описаны вообще
@zvermafia https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/SoftDeletes.php#L21
вообще вот в этом направлении копать
iGloom
@iGloom
Jul 04 2015 13:50
@protectedfor столкнувшись с такой же необходимостью пришлось просто делать доп. where
where('id','>',$prev->id)
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:51
@greabock Thanks! I'll try.
slider23
@slider23
Jul 04 2015 13:54
@marina16 как добавить свой путь: http://unix.stackexchange.com/a/26059
Роман Сохарев
@greabock
Jul 04 2015 13:55
@marina16 Крепись, Марина! Ты прорвешься!
Mokhirjon Naimov
@zvermafia
Jul 04 2015 13:56
@protectedfor может Work::where('slug', '=', 'slug-of-any-work')->get() и использовать цикл foreach()?! Помоему так логичнее
@greabock @marina16 :)
Роман Сохарев
@greabock
Jul 04 2015 14:03
@protectedfor если тебе нужно "листать" материалы, то воспользуйся пагинацией
LightAir
@LightAir
Jul 04 2015 14:20
Парни, есть у кого на заметке хорошая площадка для вебинара? бесплатная. Чё то ничего пока найти не могу (хорошего).
Dmitry Shlyomin
@dmitry1337
Jul 04 2015 14:42
Можно ли так делать?
$user = new User():
$user->name='Nick';
DB::transaction(function() use ($user){
    $user->save();
    DB::commit();
})
Andrey Degtyaruk
@hlogeon
Jul 04 2015 14:42
А ЗАЧЕМ так делать?
Maxim
@Big-Shark
Jul 04 2015 14:43
@dmitry1337 разрешаю
Andrey Degtyaruk
@hlogeon
Jul 04 2015 14:43
@Big-Shark
А зря :D
Говнокод какой-то. Одну операцию засовывать в транзакцию? Зачем транзакция для ОДНОЙ операции?
Dmitry Shlyomin
@dmitry1337
Jul 04 2015 14:44
@hlogeon я образно, конечно ради 1 операции никто этого делать не будет
LightAir
@LightAir
Jul 04 2015 14:44
@dmitry1337 разрешу только платно!
Dmitry Shlyomin
@dmitry1337
Jul 04 2015 14:47
@LightAir @Big-Shark а если, допустим, клиент оплатил что-либо через какие-нибудь я.деньги, мне приходит http уведомления на сервер, с помощью которого я могу активировать тариф юзеру. Нужно допустим в таблице поставить paid=1. В таком случае тоже не стоит заморачиваться с транзакциями?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 14:48
@dmitry1337
А как тебе в таком случае поможет транзакция?
LightAir
@LightAir
Jul 04 2015 14:48

@dmitry1337 Ну сначала деньги должны быть перечислены мне, а там уже действия на твоём сервере. Шутка.

Если ты больше ничего не трогаешь, то какой смысл?

Andrey Degtyaruk
@hlogeon
Jul 04 2015 14:49
Я тебе рекомендую погуглить, зачем нужны транзакции
LightAir
@LightAir
Jul 04 2015 14:49
+1
Dmitry Shlyomin
@dmitry1337
Jul 04 2015 14:49
@LightAir т.е. если надо апдейтить несколько таблиц, то это имеет смысл?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 14:50
@dmitry1337
И то не всегда
LightAir
@LightAir
Jul 04 2015 14:51
@dmitry1337 не всегда.
@dmitry1337 Начал давно переводить статью по транзакциям, но всё руки не доходят. Вот, держи небольшую часть https://gist.github.com/LightAir/f902c16841b97e5c89ee
Dmitry Shlyomin
@dmitry1337
Jul 04 2015 14:54
@LightAir в закладки
@LightAir @hlogeon ок, спасибо, выручили
Andrey Degtyaruk
@hlogeon
Jul 04 2015 14:55
Идельный пример транзакции - банковская операция. Немножечко подумав, можно сформулировать, зачем нужны транзакции даже без таких знаний.
Итак, давай с тобой вместе разберемся. Упростим банковскую транзакцию до таких простых операций:
  1. Снять деньги со счета клиента А
  2. Зачислить деньги на счет клиента Б
    Тогда все становится понятно: транзакция нужна тогда, когда у тебя должна быть УВЕРЕННОСТЬ в том, что ВСЕ операции выполнились успешно. Чтобы небыло такого, что деньги списались у одного, но не зачислились другому.
Это, конечно, очень упрощенно
Dmitry Shlyomin
@dmitry1337
Jul 04 2015 14:57
@hlogeon это я понимаю. А если брать тот же пример с юзером, если он не создался, то дальнейшие манипуляции с ним невозможны (например отношения и тд)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 14:58
У тебя одна операция, тебе ненужна транзакция, чтобы отследить, все ли выполнилось успешно
if(!$user->save())
//handle error
Dmitry Shlyomin
@dmitry1337
Jul 04 2015 15:00
@LightAir чет совсем мало. Есть оригинал?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 15:01
Может кто подсказать какой-нибудь большой Laravel-проект с открытыи исходниками и классным кодом, чтобы посмотреть лучшие практики
Dmitry Shlyomin
@dmitry1337
Jul 04 2015 15:03
@LightAir спасибо
Marina
@marina16
Jul 04 2015 15:21
в профайле написала
PATH="$HOME/bin:$PATH:/home/marina/.composer/vendor/bin"
вызываю homestead а он не пашет
почему(
Anatoliy
@SavenkoA
Jul 04 2015 16:02
Привет всем! Как получить доступ к этим методам пагинатора?
currentPage lastPage perPage total count
JhaoDa
@jhaoda
Jul 04 2015 16:05
@SavenkoA а тебе кто-то запретил к ним доступ?
Роман Сохарев
@greabock
Jul 04 2015 16:07
@jhaoda ты не в курсе почему в доках по 5.1 нет global scope?
JhaoDa
@jhaoda
Jul 04 2015 16:07
@greabock подозреваю, что это план увеличения выручки на ларакасте
Anatoliy
@SavenkoA
Jul 04 2015 16:09
@jhaoda в доках сказано "Вы можете получить информацию о текущем положении с помощью этих методов", а к какому классу эти методы относятся не сказано.
Все я понял, нужно обращатся так.
$acrticles->lastPage();
Роман Сохарев
@greabock
Jul 04 2015 16:15
@hlogeon все говнокодят втихаря )

@hlogeon

Говнокод какой-то. Одну операцию засовывать в транзакцию? Зачем транзакция для ОДНОЙ операции?

C чего ты вдруг решил, что там одна операция?

Роман Сохарев
@greabock
Jul 04 2015 16:22
У меня, для примера, есть обсервер, который добавляет слаг (в отдельной таблице) для пользователя, при сохранении. Правда, и транзакция в сам обсервер вшита, но не суть.
Maxim
@Big-Shark
Jul 04 2015 16:28
@greabock кстати, все номральные орм автоматом делают транзакции на несколько обновлений)
Nikita
@exotickg1
Jul 04 2015 16:29
Ребят, помогите с проблемой пожалуйста https://laravel.ru/forum/viewtopic.php?pid=4964#p4964
Ошибка при homestead up. Всё настроил по официальной документации
Maxim
@Big-Shark
Jul 04 2015 16:34
@exotickg1 все что я могу сказать это то что вагран часто вылится или тупит на разных системах, и я предпочитаю использовать обычную убунту.
Nikita
@exotickg1
Jul 04 2015 16:35
@Big-Shark печально, всё равно спасибо.
GamePostOFF
@GamePostOFF
Jul 04 2015 16:50
Привет, кто может научить создавать мидлвары для групп пользователей? (гость, авторизированный, админ)
JhaoDa
@jhaoda
Jul 04 2015 16:50
Я ваще не знаю, чо все с этим хоумстедом носятся...
Удобно, наверное, когда окружение не стандартное и ты не один разработчик
Maxim
@Big-Shark
Jul 04 2015 16:52
@jhaoda не так уж и удобно) только если все работают на разных системах, и нужно невелировать эту разницу, если все сидят на линкусах, то особо пофиг
JhaoDa
@jhaoda
Jul 04 2015 16:52
@Big-Shark я и говорю «наверное»
Maxim
@Big-Shark
Jul 04 2015 16:53
@jhaoda ну и если ненадо пакеты собирать отдельно, у нас был проект когда для апи платежной стестмы нужно было собрать пхп экстеншен, вот тут гемороя было на 1 день каждому) И это работало только под парой систем, про виндоус и тд можно забыть было)
GamePostOFF
@GamePostOFF
Jul 04 2015 17:11
This message was deleted
Как правильно разрешить группе администраторов доступ?
Route::group(array( \Auth::user()->group => 'admin'), function () {
        Route::get('panel/users', 'AdminController@users');
    });
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:13
@GamePostOFF может через middleware будет проще?
GamePostOFF
@GamePostOFF
Jul 04 2015 17:14
@vlsoprun а как через него делать? В доках не нашел.
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:14
@GamePostOFF
Route::group(['middleware' => 'role:admin', 'prefix' => 'manager'], function () {
    get('/', ['as' => 'manager', function () {
        return 'manager';
    }]);
});
GamePostOFF
@GamePostOFF
Jul 04 2015 17:14
А как role узнать?
Либо указать...
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:17
GamePostOFF
@GamePostOFF
Jul 04 2015 17:19
Class role:admin does not exist
Секунду..
Missing argument 3 for App\Http\Middleware\Authenticate::handle(), called in C:\OpenServer\domains\fileuploader\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php on line 125 and defined
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:22
@GamePostOFF я обновил ссылку, посмотри. а у тебя какая лара?
GamePostOFF
@GamePostOFF
Jul 04 2015 17:22
5.0
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:23

C чего ты вдруг решил, что там одна операция?
С того кода, который он написал
У меня, для примера, есть обсервер, который добавляет слаг (в отдельной таблице) для пользователя, при сохранении. Правда, и транзакция в сам обсервер вшита, но не суть.

То есть у тебя транзакция для одной операции(сохранение слага в отдельной таблице)?

Soprun Vladislav
@vlsoprun
Jul 04 2015 17:23
@GamePostOFF role:admin с 5.1 ((
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:23
Есть ли способ проверить существования индекса в Schema Builder?
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:23
@GamePostOFF можешь сделать аналог, просто middleware будет называться admin и проверять там
GamePostOFF
@GamePostOFF
Jul 04 2015 17:25
@vlsoprun как именно проверять? В админке у юзера задана группа. \Auth::user()->group == 'admin'
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:28
@GamePostOFF тут все зависит от твоей фантазии и цели ))
@GamePostOFF честно говоря я уже часа 3 сижу и делаю тоже что и ты ))
GamePostOFF
@GamePostOFF
Jul 04 2015 17:29
@vlsoprun ну мне нужно ограничить доступ в админку, а писать постоянно проверку на группу просто в падлу... Добавление говно-кода..
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:29

@Big-Shark

не так уж и удобно) только если все работают на разных системах, и нужно невелировать эту разницу, если все сидят на линкусах, то особо пофиг

Линуксы тоже разные бывают, а еще очень хорошо добавлять в провижон скрипт установку сервера и БД. А еще, даже в рамках одной ОС разные разработчики будут использовать разные веб-сервера, версии PHP, да еще много чего, так что не пофиг

Очень хорошо, когда конфиги у всех абсолютно одинаковые.
А то один у себя добавил кеширование, второй нет и приложение у двух пользователей работает по разному, оттуда новые баги и недопонимание
GamePostOFF
@GamePostOFF
Jul 04 2015 17:31
if (\Auth::user()->group == 'admin') {
  //тут нужные вещи для админа
}else{
  return redirect()->intended('/cabinet/profile');
@vlsoprun добавлять везде этот код лень прям....
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:31
@GamePostOFF
А в чем проблема middleware сделать?
GamePostOFF
@GamePostOFF
Jul 04 2015 17:32
@hlogeon каким образом?
GamePostOFF
@GamePostOFF
Jul 04 2015 17:32
@hlogeon так а как вытащить данные из базы данных от юзера?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:32
Документацию не читай
@
Сразу пиши код
Так?
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:32
@GamePostOFF ну для админки используй Route::group с middleware
Route::group(['middleware' => 'admin', 'prefix' => 'manager'], function () {
    get('/', ['as' => 'manager', function () {
        return 'manager';
    }]);
});
GamePostOFF
@GamePostOFF
Jul 04 2015 17:33
@vlsoprun а тогда как делать проверку в миддле?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:33
ТОЧНО ТАК ЖЕ
\Auth - это фасад, который доступен из любой части приложения
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:34
@GamePostOFF да хоть самую простую..if (\Auth::user()->group == 'admin') {
GamePostOFF
@GamePostOFF
Jul 04 2015 17:34
@hlogeon но там данные из базы данных....
Сейчас попробую
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:34
Где?
А с чего ты решил, что middleware не имеет доступа к базе?
GamePostOFF
@GamePostOFF
Jul 04 2015 17:37
<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Guard;

Class admin {
    protected $auth;

    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
    }

    public function handle($request, Closure $next,)
    {
        if (\Auth::user()->group == 'admin') {
            return $next($request);
        }else{
          return redirect()->intended('/cabinet/profile');

    }
}
но ошибка Class admin does not exist
Maxim
@Big-Shark
Jul 04 2015 17:38
@hlogeon скорее не баги, а наоборот больше фиксов, так как ручное тестирование проводится на большем количестве образов, но да, я соглашусь что в ряде случаев это может добавить гемороя, но у нас вообще некоторые локально ххвм гоняют, а некоторые пхп, ну и разные версии, и пока особо не встречался с проблемами из за разного софта
GamePostOFF
@GamePostOFF
Jul 04 2015 17:38
Route::group(['middleware' => 'admin'], function () {
        Route::get('panel/users', 'AdminController@users');
    });
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:38
rotected $auth;

    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
    }
А вот это вот зачем?
GamePostOFF
@GamePostOFF
Jul 04 2015 17:38
Скопировал со старого...
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:39
@GamePostOFF а ты добавил в Kernel.php свой middleware?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:39
но ошибка Class admin does not exist
Документацию ты все же решил не читать, так?
JhaoDa
@jhaoda
Jul 04 2015 17:39
Да у человека в знаниях РНР пробел большой, какие ему мидлвары
Правда. он не слушает и не верит, когда ему это говорят
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:40

скорее не баги, а наоборот больше фиксов, так как ручное тестирование проводится на большем количестве образов, но да, я соглашусь что в ряде случаев это может добавить гемороя, но у нас вообще некоторые локально ххвм гоняют, а некоторые пхп, ну и разные версии, и пока особо не встречался с проблемами из за разного софта

Это тебе очень повезло, это все, что я могу сказать) Или проекты маленькие, или команда маленькая, или задачи типовые.

@Big-Shark
GamePostOFF
@GamePostOFF
Jul 04 2015 17:40
@vlsoprun Вот теперь всё заработало. Спасибо.
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:41
@GamePostOFF :+1: :smile:
GamePostOFF
@GamePostOFF
Jul 04 2015 17:41
@jhaoda Этот пробел нагоняется во время работы.
JhaoDa
@jhaoda
Jul 04 2015 17:41
@GamePostOFF ну утешай себя, утешай. У тебя в базовых знаниях пробелы, какая работа?
Maxim
@Big-Shark
Jul 04 2015 17:41
@hlogeon все может быть)
GamePostOFF
@GamePostOFF
Jul 04 2015 17:42
@jhaoda Вот не нужно мне тут :D
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:42
Я вот вчера для "Вконтакте" делал ТЗ и понял, что ООП это хорошо, все таким простым кажется, после процедурного ада
Давайте лучше поговорим о радостях ООП, чем ссорится :)
GamePostOFF
@GamePostOFF
Jul 04 2015 17:42
@jhaoda Заказы для самого себя выполняю.
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:43
@jhaoda пусть парень мучается :smile:
GamePostOFF
@GamePostOFF
Jul 04 2015 17:44
@vlsoprun ну зачем так обидно? :(
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:44
@vlsoprun
@jhaoda
Все мы когда-то учились, если будет достаточно усердным, все будет ОК. Вот только, насколько я помню себя, я сначала читал документацию, форумы и stack overflow, прежде, чем задавать вопросы. @GamePostOFF бери на заметку
Soprun Vladislav
@vlsoprun
Jul 04 2015 17:45
@GamePostOFF да не )) Просто что бы @jhaoda не приставал с > @GamePostOFF ну утешай себя, утешай. У тебя в базовых знаниях пробелы, какая работа?
JhaoDa
@jhaoda
Jul 04 2015 17:46
У поколения нынешних хипстеров рефлекс читать доку отмер, что ли
Все такие социальные, сразу в чат
Гуглить — для лохов, да
GamePostOFF
@GamePostOFF
Jul 04 2015 17:47
В русских документациях мало что написано, а переводить гугл транслейтером - себя не уважать...
Роман Сохарев
@greabock
Jul 04 2015 17:47
@Big-Shark расскажи-ка, откуда "нормальные орм" знают о том, что я событие поджег?
JhaoDa
@jhaoda
Jul 04 2015 17:47
При этом надо заметить, для порядка, что в каждой следующей версии доки ларавель инфы всё меньше
Alexander Sterpu
@fs-alex
Jul 04 2015 17:47
Люди, вопрос по поводу мидлваров. К примеру есть такая модель: Тест, у нее могут быть Вопросы. А также есть роут на показ этого Теста с Вопросами. Проверку на то, что у этого теста есть хотя бы один Вопрос я сделал в контроллере и все в принципе работает, но зачем тогда мидлвары? Можно ли мидлвару как-то передать объект Теста?
JhaoDa
@jhaoda
Jul 04 2015 17:47
@GamePostOFF английский учить не пробовал?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:47
@jhaoda
Мне 22, так что, наверное, я еще отношусь к этому поколению. Больше от человека зависит, имхо.
@GamePostOFF
Английский - must know для программиста
GamePostOFF
@GamePostOFF
Jul 04 2015 17:48
@jhaoda 4-5 по английскому всю жизнь было, а базовые знания так и не получил.
JhaoDa
@jhaoda
Jul 04 2015 17:48
@hlogeon ну я en masse говорю...
@GamePostOFF и что? Ты этим гордишься, что ли?
GamePostOFF
@GamePostOFF
Jul 04 2015 17:48
@jhaoda нет, наоборот.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:48
@GamePostOFF
Мерить оценками знания. Добро пожаловать
GamePostOFF
@GamePostOFF
Jul 04 2015 17:48
:D
JhaoDa
@jhaoda
Jul 04 2015 17:49
Не, учить английский это тяжко, да. Лучше выносить мозг в чате...
Alexander Sterpu
@fs-alex
Jul 04 2015 17:49
Можно ли мидлвару передать объект модели?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:50

@st-vojak

Люди, вопрос по поводу мидлваров. К примеру есть такая модель: Тест, у нее могут быть Вопросы. А также есть роут на показ этого Теста с Вопросами. Проверку на то, что у этого теста есть хотя бы один Вопрос я сделал в контроллере и все в принципе работает, но зачем тогда мидлвары? Можно ли мидлвару как-то передать объект Теста?

Для того чтобы не дублировать код. Если у тебя эта проверка в одном месте и повтороное его использование не планируется, то middleware тебе не нужен.

Можно

GamePostOFF
@GamePostOFF
Jul 04 2015 17:50
@hlogeon в том-то и дело, что у меня их нет. Не, ну я могу перевести небольшой текст за 1-6 классы... Мне китайский легче английского давался.
Роман Сохарев
@greabock
Jul 04 2015 17:50
@jhaoda да успокойся уже ))
@GamePostOFF хотя @jhaoda отчасти прав - учить английский все равно придется.
JhaoDa
@jhaoda
Jul 04 2015 17:50
@greabock я квасу выпил, не мешай. И я прав не отчасти, а почти на 80%
Maxim
@Big-Shark
Jul 04 2015 17:50
@greabock а события являются анти патерном)
Роман Сохарев
@greabock
Jul 04 2015 17:51
@st-vojak зачем миддлвару объект модели? ))
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:51
@Big-Shark
О_о
Это ты где такое вычитал????

зачем миддлвару объект модели? ))

Ну например @Big-Shark недавно применял это для проверки прав пользователя

Могу придумать такой кейс:
Нужно до доступа к контроллеру проверить, есть ли у объекта какое-то поле
Роман Сохарев
@greabock
Jul 04 2015 17:52
@Big-Shark ну вот те "здрасте", я такую **здатую систему событий замутил, а они оказывается антипаттерн. Прям хотелось бы узнать как бы у тебя независимые домены без событий общались ))
Maxim
@Big-Shark
Jul 04 2015 17:52
@hlogeon ты обращяешься ко мне, цитипую @greabock
@greabock вот поэтому я и не использую настолько сильно независемые компоненты)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:54
@Big-Shark
Ты полную чушь про события говоришь. Есть немало event-driven систем
У меня одна игра полностью на событиях работает
Maxim
@Big-Shark
Jul 04 2015 17:54
@hlogeon есть не мало актив рекорд систем, и что?
JhaoDa
@jhaoda
Jul 04 2015 17:54
Чо тут, срачик назревает?:)
Maxim
@Big-Shark
Jul 04 2015 17:54
Драка)
Роман Сохарев
@greabock
Jul 04 2015 17:55
@jhaoda ты давай пей квас - не отвлекайся ))
GamePostOFF
@GamePostOFF
Jul 04 2015 17:55
Борьба очкастых программистов ;) (не в обиду)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:55
@Big-Shark
То есть ты Active Record сам в ранг анти-паттернов занес? Открою секрет, есть кейсы, когда они оправданы
Maxim
@Big-Shark
Jul 04 2015 17:56
@hlogeon есть кейс когда оправдан анти паттерн?
Роман Сохарев
@greabock
Jul 04 2015 17:56
@hlogeon есть куча причин, почему AR - зло. И я тут с @Big-Shark в некоторых моментах согласен
Maxim
@Big-Shark
Jul 04 2015 17:57
@greabock в некоторых? я думал во всех )))
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:58

Есть кейс, когда оправдан Active Record -> Active Record не анти-паттерн

@greabock
Для маленьких систем с простой бизнес-логикой и небольшим набором данных Active Record очень даже оправдан

Maxim
@Big-Shark
Jul 04 2015 17:58
Я не говорю что нельзя использовать АР или систему ивентов, я говорю только о том что некоторые, считаю что это арти патрено, и это плохо)
Роман Сохарев
@greabock
Jul 04 2015 17:58
Тут вопрос в том: "вам шашечки или ехать?"
Maxim
@Big-Shark
Jul 04 2015 17:59
@hlogeon так тут оправнодо использование анти паттерна, но сам артив рекорд при этом не становится бест практис)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 17:59
Если что-то не является бест практис оно сразу становится анти-паттерном? Интересненькая логика у программиста :)
Роман Сохарев
@greabock
Jul 04 2015 17:59
@Big-Shark "анти-паттерн" - слишком громкая фраза
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:00
Я о том и говорю. Синглтон - антипаттерн, а AR просто не бест практис
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:02
Мммм... Там чувак рассуждает о конкретных реализация больше, чем о самом паттерне, так что думаю, его вряд ли можно считать авторитетом
По первой ссылке
А вторая вообще об Active Repository
Что совсем не об AR
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:05

И заключение из первой ссылки

Sadly a lot of developers consider Active Record as their default choice for database interaction while most applications will have some business logic and complex behavior where Active Record pattern will fail.

Он говорит о том, что к сожалению, большинство разработчиков выбирают AR по дефолту, в то время, как в большинстве приложений будет логика и комплексные поведения, в которых Active Record будет фэйлить.
Это значит, что автор говорит о том же о чем и я, что это не анти-паттерн, а просто его используют где непопади

Maxim
@Big-Shark
Jul 04 2015 18:06
@hlogeon Ок, давай так, АР нарушает СОЛИД Принцеп?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:06
ОК, middleware нарушает СОЛИД принцип
Maxim
@Big-Shark
Jul 04 2015 18:07
@hlogeon какой из пунсков мидлвеа нарушает?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:12
Одну единственную обязанность. Только с неожиданной стороны. Получается, что одна обязанность делегирована множеству классов. Обязанность обработка пользовательского запросы и вывод нужного представления
Но middleware херня, плохой пример. Давай поговорим про ФАСАД, которого в ларавель ООООЧЕНЬ много?)
Maxim
@Big-Shark
Jul 04 2015 18:13
@hlogeon эмм, так тут одна обязанасть реашется многими классами, а не 1 класс реашет много обзятаностей.
@hlogeon в интернете кстати я не смог найти почему мидлвеа не солид
@hlogeon я не использую фасад) и не рекомендую это делать)
@hlogeon поэтому я тут тебе ничего не скажу)
JhaoDa
@jhaoda
Jul 04 2015 18:15
@hlogeon да, давай поговорим про фасад, который в ларавель совсем не фасад :)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:16
Чем же в ларавель фасад не фасад?
JhaoDa
@jhaoda
Jul 04 2015 18:16
Потому что это просто статичный алиас
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:17
Нет, неправда
Смотри Illuminate\Support\Facades;\Facade
Все фасады экстендят именно его
JhaoDa
@jhaoda
Jul 04 2015 18:18
@hlogeon и что? Всё завязано на контейнер опять же.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:20
И теперь посмотри, например фасад DB, который в итоге включает в себя:
\Illuminate\Database\DatabaseManager
\Illuminate\Database\Connection
JhaoDa
@jhaoda
Jul 04 2015 18:20
@hlogeon прям включает?:)

С каких пор

/**
 * @see \Illuminate\Database\DatabaseManager
 * @see \Illuminate\Database\Connection
 */

стало «включает»?

Роман Сохарев
@greabock
Jul 04 2015 18:22
@hlogeon Во-первых, фасады в laravel - это не паттерн "фасад". Не надо путать блины с оладьями.
Во-вторых, никто не заставляет тебя их использовать - можешь вообще все алиасы стереть и забыть.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:22
Прям объединяет функционал

Во-вторых, никто не заставляет тебя их использовать - можешь вообще все алиасы стереть и забыть.

А я разве сказал, что я их использую?

JhaoDa
@jhaoda
Jul 04 2015 18:23
@hlogeon объединяет?:)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:23
Прям да
JhaoDa
@jhaoda
Jul 04 2015 18:23
Да он тупо проксирует запрос в контейнер, кого он там объединяет-то?
Вся обвязка в классе Facade для того, что бы манипулировать инстансом в контейнере и мокать. Всё.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:25

Ты в итоге-то что получаешь?)

ФАСАД - шаблон проектирования, позволяющий скрыть сложность системы путем сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы.

Это соответствует тому, что делает Фасад в Laravel? По-моему - более чем

Maxim
@Big-Shark
Jul 04 2015 18:25
Ну вообще всетаки фасад в ларавели частичто подподает под патер фасад)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:26
Скажи мне лучше, в чем не попадает? Не попадает если только под какую-то конкретную реализацию, которую вам показали, но она может быть любой, главное, чтобы отвечала определению. Фасад в ларавель на 100% отвечает определению
Maxim
@Big-Shark
Jul 04 2015 18:27
@hlogeon в том что он по сути скрывает 1 строчку, и без особой сложности
Soprun Vladislav
@vlsoprun
Jul 04 2015 18:27
Читая о чем вы говорите, чувствую себя нублом )))
Maxim
@Big-Shark
Jul 04 2015 18:28
@hlogeon фасад по идеи скрывает сложную реализацию, допустим функция git_last_twits, в которой мы создаем обьект курл, загружаем конфиг, на основе этого создаем обьект тветера, и потмо делаем вызов функции, и ее возврат результат
@hlogeon вот тут да, мы скрыли сложность на простой функией, и она является фасадом
JhaoDa
@jhaoda
Jul 04 2015 18:29
@hlogeon \DB::method() === app('db')->method(). Где тут скрываемая сложность?
Maxim
@Big-Shark
Jul 04 2015 18:29
@hlogeon а то что там фасад по сути вызовет 1 функцию из контейнера, да это же не сложность)
@hlogeon фасад это некий прокси обджект
JhaoDa
@jhaoda
Jul 04 2015 18:34
@Big-Shark да он же юишник!
Бей его, робяты!
Роман Сохарев
@greabock
Jul 04 2015 18:34
да прекратите вы мешать фасад лары, с паттерном "фасад". Вам картинкой в оттенках серого показали схему работы фасада(паттерна).
https://upload.wikimedia.org/wikipedia/ru/2/2f/Facade.gif
JhaoDa
@jhaoda
Jul 04 2015 18:35
@greabock не обобщай. Не «вы», а «hlogeon»
Роман Сохарев
@greabock
Jul 04 2015 18:36
а то поглядел в википедии первую строку - умным стал... хоть бы поскролил для приличия
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:37
@greabock
  1. Скроллил я достаточно, успокойся
Maxim
@Big-Shark
Jul 04 2015 18:37
@greabock а начали то мы с эвентовой модели)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:38
А теперь расскажи почему тогда из \DB я могу вызвать и unprepared() что является частью Db\Connection
и connection из DatabaseManager?
Это не подходит под схему, что ты мне так аггресивно прислал?
Спокойней будь
Роман Сохарев
@greabock
Jul 04 2015 18:38
@hlogeon лолка
а фасад-то тут причем
Maxim
@Big-Shark
Jul 04 2015 18:39
@hlogeon насколько я понимаю просто проксируется вызов функции в другой класс, и ничего более
@Big-Shark
Вы опять о конкретных реализациях, а не сути паттерна
Он скрывает в себе сложный функционал нескольких классов?
  1. Менеджер
  2. Соединение
Вроде бы 2 класса, не так ли?
Maxim
@Big-Shark
Jul 04 2015 18:43
@hlogeon ок, тогда давай говорить что класс DB является фасадом, а остальные фасады насколько я понимаю нет?
Роман Сохарев
@greabock
Jul 04 2015 18:47

еще раз ричем тут фасад?

https://github.com/laravel/framework/blob/5.1/src/Illuminate/Support/Facades/DB.php#L18

он проксирует методы на объект в контейнере. На объект вот этотого класса
Все вопросы к тому, что и как он возвращает только к этому классу. Фасад тут вообще не при делах

Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:48
А теперь найди мне непосредственно в объекте https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/DatabaseManager.php
Метод unprepared()
Maxim
@Big-Shark
Jul 04 2015 18:49
@hlogeon
public function __call($method, $parameters)
{
   return call_user_func_array([$this->connection(), $method], $parameters);
}
не дает никаких объяснений
то иди php.net полистай
раздел про перегрузку методов
Maxim
@Big-Shark
Jul 04 2015 18:51
@greabock а перезагрузка тут причем?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:51

Это дает объяснение, а теперь опять вернемся к тому, что же такое фасад и зададим 1 простой вопрос.
Можем ли мы, используя его получить доступ к методам нескольких классов.

раздел про перегрузку методов

call_user_func()

перегрузку методов

Похоже не мне надо php.net читать
Роман Сохарев
@greabock
Jul 04 2015 18:52
ух ты
Maxim
@Big-Shark
Jul 04 2015 18:52
@greabock сам себя в угол загнал)
Роман Сохарев
@greabock
Jul 04 2015 18:52
лолка
public function __call($method, $parameters)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:53
Это как бы тоже не перегрузка
Maxim
@Big-Shark
Jul 04 2015 18:53
@hlogeon мы получили доступ к методам 1 класса, а то что тот вызывает методы уже другого класса, нас не касается
@hlogeon это тоже самое что если бы у класса было 2 метода, и каждый из методов вызывал бы функции из разных классов, от этого не не стал бы фасадом
Роман Сохарев
@greabock
Jul 04 2015 18:54
Maxim
@Big-Shark
Jul 04 2015 18:54
@hlogeon иначе по такой логики у нас все фасады)
Роман Сохарев
@greabock
Jul 04 2015 18:54
если это б**дь не перегрузка, то я китайский паровоз
не бесите меня )))
Maxim
@Big-Shark
Jul 04 2015 18:55
@greabock Ух ты)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:55
В КОНТЕКСТЕ ОБЪКТА ПРИ ВЫЗОВЕ НЕДОСТУПНЫХ МЕТОДОВ.
Как ты можешь ПЕРЕГРУЗИТЬ метод, который небыл определ, милы?
Это не перегрузка
Роман Сохарев
@greabock
Jul 04 2015 18:56
^ вот теперь я уверен, что тебе нужно мануал хорошенько почитать
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:56
Переопределение метода (англ. Method overriding) в объектно-ориентированном программировании — одна из возможностей языка программирования, позволяющая подклассу или дочернему классу обеспечивать специфическую реализацию метода, уже реализованного в одном из суперклассов или родительских классов.
уже реализованного в одном из суперклассов или родительских классов.
Роман Сохарев
@greabock
Jul 04 2015 18:57
Опа...
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:57
уже реализованного в одном из суперклассов или родительских классов.
В КОНТЕКСТЕ ОБЪКТА ПРИ ВЫЗОВЕ НЕДОСТУПНЫХ МЕТОДОВ
Роман Сохарев
@greabock
Jul 04 2015 18:57
мы еще и переопределение от перегрузки отличить не можем
отлично
короче, дорога одна - в мануал
вопрос закрыт
Orel
@2byte
Jul 04 2015 18:58
Это какие такие супер классы ?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 18:58
Класс-родитель
@greabock
Расскажи мне, чем отличается переопределение от перегрузки?
Роман Сохарев
@greabock
Jul 04 2015 19:00
...
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:00
скажите это чуваку что фасады Laravel это тоже самое что и паттерн фасад. Я думаю будет проще. :)
Roman
@TeroBlaZe
Jul 04 2015 19:00
@hlogeon Лол еще один с ооп сунул свой нос в пых :D
Роман Сохарев
@greabock
Jul 04 2015 19:01
Сначала ты меня убеждаешь в том, что я плохо знаю php, а потом просишь рассказать как он работает
не надо так
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:01
скажите это чуваку что фасады Laravel это тоже самое что и паттерн фасад. Я думаю будет проще. :)
Про фасад меня убедили, я согласен, что фасад не фасад
Про фасад меня убедили, я согласен, что фасад не фасад
А вот теперь про перегрузки и переопределение
Пожалуйста, @greabock , я правда хочу узнать, сделай доброе дело
JhaoDa
@jhaoda
Jul 04 2015 19:02
@hlogeon я ни на что не намекаю, но всё же может тебе аватарку сменить? А то сильно уж палишься...
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:02
@jhaoda
Что не так с моей аватаркой?
JhaoDa
@jhaoda
Jul 04 2015 19:04
@hlogeon возраст выдает. А до Грэма, который тоже не дедушка, тебе далеко...
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:04
@jhaoda
Ну я не скрываю свой возраст, а фотка 2008 года
Так что там с перегрузкой и переопределением, а то тут на личности переходят, а толкового пока я ничего не увидел
Роман Сохарев
@greabock
Jul 04 2015 19:05
если в классе определен метод __call Каждый раз, когда ты вызываешь на объекте этого класа метод, который не был определен, будет вызван метод __call
первым параметром туда будет передано имя метода, который ты пытался вызвать, вторым - массив аргументов
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:06
Ты мне не про __call, а про разницу между ПЕРЕГРУЗКОЙ и ПЕРЕОПРЕДЕЛЕНИЕМ
Роман Сохарев
@greabock
Jul 04 2015 19:06
для статических методов __callStatic - соответственно
Roman
@TeroBlaZe
Jul 04 2015 19:07
хватит уже дубинками меряться, есть гугл))
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:07
Это не перегрузка, еще раз повторяю
Роман Сохарев
@greabock
Jul 04 2015 19:07
а переопределние, это просто создание метода в дочернем классе с именем, которое уже было определено в родительском
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:07

хватит уже дубинками меряться, есть гугл))

Гугле говорит, что перегрузка это пережиток процедурного программирования

Роман Сохарев
@greabock
Jul 04 2015 19:08
методы с аттрибутом final переопределны быть не могут
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:08
Так а перегрузка что такое?
Roman
@TeroBlaZe
Jul 04 2015 19:08
Class1 { function getVar($val1) {}} -> Class2 extends Class1 { function getVar($var1, $var2){}} <- перегрузка. тема закрыта
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:08
Class1 { function getVar($val1) {}} -> Class2 extends Class2 { function getVar($var1, $var2){}}
Ну тогда @greabock не прав в своем посте
Роман Сохарев
@greabock
Jul 04 2015 19:08
@TeroBlaZe ошибка
это переопределение
Roman
@TeroBlaZe
Jul 04 2015 19:09
Class1 { function getVar($val1) {}} -> Class2 extends Class1 { function getVar($var1){}} == переопределение
Maxim
@Big-Shark
Jul 04 2015 19:09

Переопределение (override)

Переопределение используется тогда, когда вы переписываете (переделываете, переопределяете) УЖЕ существующий метод. Например в классе Object есть очень популярный метод toString(), который возвращает строковое представление объекта

Перегрузка (overload)

Перегрузка метода заключается в следующем – вы создаете метод с таким же именем, но с другим набором параметров.

JhaoDa
@jhaoda
Jul 04 2015 19:09
@greabock тебе квасу налить?:)
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:09
То есть, @greabock не прав
Суд по словам @Big-Shark
Maxim
@Big-Shark
Jul 04 2015 19:10
Roman
@TeroBlaZe
Jul 04 2015 19:10
джава, она такая ^_^
Роман Сохарев
@greabock
Jul 04 2015 19:10
@jhaoda я ж даже не сениор... почему мне приходится это объяснять "сведущим посонам", которые в википедии про паттерны читали и все знают?
JhaoDa
@jhaoda
Jul 04 2015 19:12
@greabock жизнь она такая...
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:12
@greabock
Перестань так агрессивно себя вести, пожалуйста, тем более с незнакомыми людьми. Ты не знаешь, где и кем я работаю, какие проекты делал и какая у меня экспертиза в ООП. То что я говорил о фасадах Laravel как о фасадах ООП показывает мое незнание Laravel, а не ООП. А Laravel я незнаю, я это не скрываю
JhaoDa
@jhaoda
Jul 04 2015 19:13
Вы ещё мою экспертизу не видали! 29 см!
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:13
Поэтому я и здесь, поэтому я и веду с Вами споры, выясняя истину. При том, твоя экспертиза в ООП тоже не особо высока, судя по словам о перегрузке и переопределении.
Maxim
@Big-Shark
Jul 04 2015 19:14
@hlogeon Так расскажи нам о себе)
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:14
@Big-Shark @hlogeon Ну вот причём здесь вообще Java и впринципе любая другая статья по этому поводу кроме http://php.net/manual/ru/language.oop5.overloading.php . Там чёрным по белому написано что такое перегрузка в PHP. Мы на PHP канале. Вот вам ещё что такое перегрузка, разницы же нет, как я вижу. Перегру́зка — отношение абсолютной величины линейного ускорения, вызванного негравитационными силами, к ускорению свободного падения на поверхности Земли. Будучи отношением двух сил, перегрузка является безразмерной величиной, однако часто перегрузка выражается в единицах ускорения свободного падения g. Перегрузка в 1 единицу (то есть 1 g) численно равна весу тела, покоящемуся в поле тяжести Земли. Перегрузка в 0 g испытывается телом, находящемся в состоянии свободного падения под воздействием только гравитационных сил, то есть в состоянии невесомости.
JhaoDa
@jhaoda
Jul 04 2015 19:14
@hlogeon тебе сказали, что в ларавель фасады не фасады, но ты упорно доказывал, что фасад в ларавель все же фасады. Теперь признался, что в ларавель нуб. Как тебе верить?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:14
@jhaoda
Не тяжело с такой экспертизой ходить-то? :D
JhaoDa
@jhaoda
Jul 04 2015 19:15
@hlogeon и вообще, что значит «какая у меня экспертиза в ООП»? Что за фраза такая? Экспертиза это процесс.
Роман Сохарев
@greabock
Jul 04 2015 19:15
ну дык не стоит лезть с базой по джаве в php и говорить, что все понятно - почитать нужно, разобраться. Здесь свое ООП - кривое, но нам нравится. И если я говорю, что тебе нужно почитать php.net - значит нужно прислушаться, а не говорить мне о том, что я php не знаю.
Maxim
@Big-Shark
Jul 04 2015 19:15
@Rhincodon ну смотри, во всем ООП мире все называется одинакого, верно? Если так, то судя по статье в пхп вообще нет оверлоада?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:19

@jhaoda
Помимо того, что "сказали" надо выяснить ПОЧЕМУ. Спор - лучший вариант.

@greabock
Я ни разу не сказал, что ты плохо знаешь php, заметь это. По поводу php.net - я его перепрочитал много раз и довольно неплохо помню.

@Rhincodon
То что php называет перегрузкой, таковой не является в терминах ООП, об этом даже в мануале написано. Спор у нас шел об ООП в основном и запутаться в терминах труда не составляет. Один имел ввиду одно, другой другое. Такое бывает, когда не оточняют.

Denis Isaychenko
@Rhincodon
Jul 04 2015 19:19
@Big-Shark Значит нет, или реализуется как то по своему. Нужно гуглить. Но слово «перегрузка» в PHP значит то что описывает документация. Не нужно тулить сюда ООП впринципе и чёто доказывать в контексте языка аргументами из контекста ООП.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:20
@Rhincodon
Так а кто тебе сказал, что был контекст языка? Я, например говорил об ООП. И все о нем говорили, пока мы спорили про фасад. Иначе фасад фасадом я могу назвать. И никому не сказать, что только в терминах Laravel
Maxim
@Big-Shark
Jul 04 2015 19:20
@Rhincodon воу воу, я вообще в спорах не уучаствовал, я только предоставлял информацию, может не всегда верную )
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:21
@hlogeon НО, ты же в контексте PHP начал доказывать тут что мы тут все неправы. Брал какие то примеры PHP кода, чё то там доказывал.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:22
@Rhincodon
Видишь, как сложно определить контекст. Каждый его определил по своему
JhaoDa
@jhaoda
Jul 04 2015 19:22
:) капец, во чувак съезжает
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:23
@hlogeon ну наверное заходя в канал PHP Laravel можно контекст сразу определить
JhaoDa
@jhaoda
Jul 04 2015 19:23
Талант просто
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:23
Эммм... Ну вообще-то, еще раз повторю, спор о фасадах был в контексте ООП и это было очевидно
JhaoDa
@jhaoda
Jul 04 2015 19:24
@hlogeon спор о фасадах был в рамках ларавель, хватит юлить-то
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:24
@hlogeon ну да. Ты взял фасад Laravel который по сути прокси паттерн реализует, и начал его обзывать паттерном фасад.
Роман Сохарев
@greabock
Jul 04 2015 19:24
@hlogeon я тебе с самого начала сказал, что фасады в ларе - это не паттерн "фасад".
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:25

@jhaoda
Чего? Друг мой, был спор, является ли фасад в ларавел ПАТТЕРНОМ фасад. Это сфера ООП, а не laravel

@greabock
Я помню и уже согласился

JhaoDa
@jhaoda
Jul 04 2015 19:25
Нет, ну как съезжает, а! :)
@hlogeon и кстати, ты мне не друг. И я тебе не друг.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:26
@jhaoda
Откуда съезжаю-то? То что я согласился, я написал еще минут 5 назад. Или ты считаешь, что я должен доказывать, что это фасад даже когда меня убедили в обратном? Ты всегда так делаешь?
@jhaoda
Я рад, что ты мне не друг :D

Anyway, имхо, вышло лучше, чем

А как добавить middleware

Roman
@TeroBlaZe
Jul 04 2015 19:30
Раз активность вижу зашкаливает, спрошу одну вещь))) Кто как загружает картинки, где хранит и как получает? Загружать и хранить в папке Public и получать напрямую по HTTP, или хранить в Storage И получать через Route::get('image/{file}) с помощью Image::make($file)->response() ??? Я вот хочу сделать выбор, да как бы потом не пришлось переделывать
JhaoDa
@jhaoda
Jul 04 2015 19:30
@TeroBlaZe зависит от задачи.
Roman
@TeroBlaZe
Jul 04 2015 19:31
задача - хранить 4 типа разных картинок (аватарок)
JhaoDa
@jhaoda
Jul 04 2015 19:31
Второй вариант я вообще не понимаю зачем, если только не торговать контентом
Roman
@TeroBlaZe
Jul 04 2015 19:32
@jhaoda не, ну, как бы аплоад в паблик, фуфу и всё такое.
JhaoDa
@jhaoda
Jul 04 2015 19:32
@TeroBlaZe пфффф
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:32
@jhaoda ну я второй использую в контексте того что картинки в 3-х разных хранилищах могут быть, на dropbox, s3 и в папочке )
JhaoDa
@jhaoda
Jul 04 2015 19:33
@Rhincodon ну это уже внешнее хранилище когда. В итоге-то ты отдаешь прямую ссылку? Или нет?
Roman
@TeroBlaZe
Jul 04 2015 19:34
@Rhincodon ну вроде пока нужды во внешнем хранилище нет
JhaoDa
@jhaoda
Jul 04 2015 19:34
Или прямые ссылки выжрут трафик?
Roman
@TeroBlaZe
Jul 04 2015 19:35
@jhaoda мне кажется сервер выкачивает картинку и отдает юзеру
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:35
@jhaoda я отдаю rememberForever из кеша картинку. По сути она хранится всё равно в кеше в storage после первого запроса, но оригинал во внешнем хранилище в безопасности.
JhaoDa
@jhaoda
Jul 04 2015 19:36
@Rhincodon ну ты стрим отдаешь или ссылку на файл?
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:39
@jhaoda Я response объект кеширую и отдаю его. В Intervention Image есть Image::response() вот этот результат у меня в кеше и возвращается он.
Roman
@TeroBlaZe
Jul 04 2015 19:40
всё такие наверное вариант со Storage гибче, можно хранить где угодно и как угодно, а урл будет всегда один, т.к. строится не от иерархии папок
JhaoDa
@jhaoda
Jul 04 2015 19:40
@Rhincodon понятно, стрим это.
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:40
Вообще так конечно делать не круто, потому как прямая ссылка в 100 раз быстрее работает из-за того что php запускать не надо. Ну благо в браузере конечно закешируется картинка.
Roman
@TeroBlaZe
Jul 04 2015 19:41
@Rhincodon вот, по ходу только один минус и есть - скорость
JhaoDa
@jhaoda
Jul 04 2015 19:42
Это фигня, над на стороне сервера кэшировать. Т.е. nginx, например, должен это тоже делать
Roman
@TeroBlaZe
Jul 04 2015 19:43
@jhaoda как он будет это кешировать? Разве не опкеш это делает?
JhaoDa
@jhaoda
Jul 04 2015 19:43
@TeroBlaZe короче, как я сказал выше — зависит от ситуации.
@TeroBlaZe опкэш кэширует картинки? Что-то новое...
Roman
@TeroBlaZe
Jul 04 2015 19:44
@jhaoda запрос ведь не напрямую к картинке идет, а через пхп и как nginx узнает что на выходе была картинка?
JhaoDa
@jhaoda
Jul 04 2015 19:45
@TeroBlaZe а как браузер узнаёт, что ему прислали?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:45
@jhaoda
А есть пример кеша на стороне сервера? Вроде бы кеширует всегда браузер клиента
Roman
@TeroBlaZe
Jul 04 2015 19:45
@jhaoda что сервер скажет то и узнает
JhaoDa
@jhaoda
Jul 04 2015 19:46
@TeroBlaZe а сервер это как говорит? Заголовками. Ну вот nginx в проксирующем режиме заголовки и мониторит
@hlogeon что? Как сделать кэш на сервере? Что ты там про «экспертизу» говорил-то?
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:47
Ты отдаешь заголовки, которые говорят браузеру кешировать
Roman
@TeroBlaZe
Jul 04 2015 19:47
@jhaoda у меня допустим nginx единственный
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:48
Если ты будешь кешировать на стороне сервера изображения, то зачем тебе внешние хранилище, если они будут лежать в кеше твоего сервера всеравно
JhaoDa
@jhaoda
Jul 04 2015 19:48
@TeroBlaZe я не спец по nginx и не знаю, может ли один инстанс и обслуживать непосредственно запросы в php, и проксировать
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:49

Если же ты говоришь о чем-то типа
```
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
expires 3d
}

то это кеш на стороне клиента

Denis Isaychenko
@Rhincodon
Jul 04 2015 19:49
Снова ты
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:50
Я не холиварить пришел, а спроисить, как кешировать на стороне сервера.
Roman
@TeroBlaZe
Jul 04 2015 19:51
кеш на сервере скорее всего понимается под использованием более быстрой памяти, вместо диска
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:51
Ну ты пишешь код для кеша статики в nginx на стороне сервера и говоришь что это кеширование на стороне клиента. Прямо как с фасадами.
Точнее не так.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:53
Ну ты пишешь код для кеша статики в nginx на стороне сервера и говоришь что это кеширование на стороне клиента
Тот код, что я напиcал только добавляет заголовки к отдаваемым файлам, кешируются они браузером. Проверить легко - выключи в своем браузере кешировние и посмотри как изменится скорость загрузки.
Denis Isaychenko
@Rhincodon
Jul 04 2015 19:53
Да да, ты прав, прошу прощения.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 19:54
Потому я и спрашиваю, есть ли реально кеш на стороне сервера, должно же быть что-то такое, я пока не встречал, а могло бы очень пригодится в некоторых ситуациях.
4gekkman
@4gekkman
Jul 04 2015 19:55
@hlogeon Картинки можно кэшировать с помощью веб-сервера nginx - благодаря этому скорость их загрузки ограничена лишь пропускным каналом интернета сервера и клиента
Это просто замечательно, если у тебя, скажем, интернет магазин, где в каталоге надо выводить одновременно много картинок. С таким кэшем, всё появляется мгновенно, а не уныло подсасывается
JhaoDa
@jhaoda
Jul 04 2015 19:57
@hlogeon короче, тренируй «экспертизу»...
Andrey Degtyaruk
@hlogeon
Jul 04 2015 20:02

@jhaoda
Я никогда не говорил, что занимался администрированием, для этого есть системный администратор, ты уйми свой гонор-то.

@Rhincodon
Спасибо, но насколько я понял, то решение кеширует результаты запросов к Original серверу и отдает их, не делая запрос к Original, если они есть. Это не совсем то, но суть уловил. Еще раз спасибо.

@4gekkman
Каким образом? Есть ссылка? Я так понимаю, примерно так же, как в посте, который прислал @Rhincodon ?

Denis Isaychenko
@Rhincodon
Jul 04 2015 20:07
@TeroBlaZe Кстати, ещё преимущество хранения в storage и отдачи через php — можно каким-нибудь сегментом в url к картинке указать размер до которого нарезать и отдать результат нарезанный сразу, и закешировать его соответственно. То есть не нужно нарезать картинку при загрузке, а нарезать только при непосредственном запросе нужного размера. Минус конечно в том что нужно или ограничить кол-во нарезаемых размеров или ставить что-то типа cloudflare, чтобы сервер не повесили если увидят что можно динамически нарезать картинки плохие люди.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 20:09
а нарезать только при непосредственном запросе нужного размера
Нарезка картинок довольно трудоемкая операция, если будет много пользователей - ляжет. Такие вещи часто вообще в очереди выносят
Denis Isaychenko
@Rhincodon
Jul 04 2015 20:09
А ты нарезаешь только при первом запросе картинки вообще впринципе. Дальше она из кеша идёт, неважно кто её запросил.
Roman
@TeroBlaZe
Jul 04 2015 20:09
@Rhincodon ты мне сейчас открыл глаза на одну вещь. xDDD
Denis Isaychenko
@Rhincodon
Jul 04 2015 20:11
@TeroBlaZe можно в файлах кеша лары, можно воспользоваться любым средством что она предоставляет из кеша там, memcached, redis, что там ещё. Правда я не знаю подходят ли они для такого.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 20:12
Memcached и Redis вполне подходят
Roman
@TeroBlaZe
Jul 04 2015 20:12
@Rhincodon да, я понял) :thumbsup:
Denis Isaychenko
@Rhincodon
Jul 04 2015 20:15
Вообще это очень удобно. Обычно же нарезают при загрузке картинки и сохраняют. И если вдруг поменялись нужные размеры то усё, нарезай заново. А так тебе всё равно что там будет с вёрсткой в будущем.
asvae
@asvae
Jul 04 2015 20:16

можно каким-нибудь сегментом в url к картинке указать размер до которого нарезать и отдать результат нарезанный сразу, и закешировать его соответственно

Ох и отличная идея.

Roman
@TeroBlaZe
Jul 04 2015 20:18
@Asvae Ага, главное, что когда делаешь такие отличные идеи, учесть идиотов, которые могут твоей идеей тебе же во зло воспользоваться :D
asvae
@asvae
Jul 04 2015 20:21
И как ей можно воспользоваться во зло?
Кстати, intervention|image же без хедеров картинку слать будет, не?
Roman
@TeroBlaZe
Jul 04 2015 20:22
@Asvae очевидно как
Denis Isaychenko
@Rhincodon
Jul 04 2015 20:23
@Asvae Если не указаны где то в коде массивом доступные размеры или не стоит какая то защита, то можно просто циклом по серверу пройтись, что-то типа 1x1, 1x2 и так далее и загрузить его к чёртовой матери. :)
или овербольшой размер указать для нарезки
asvae
@asvae
Jul 04 2015 20:30

Ну да, через роут вида image?height=&width= — слишком много власти в руки пользователя.

Хотя вариант подкупает простотой.

Denis Isaychenko
@Rhincodon
Jul 04 2015 20:31
это решается методом выше что я написал )
и кстати не width/height , а просто image/100x100 например )
asvae
@asvae
Jul 04 2015 20:33
Это уже лишние сложности. Хочется же максимально просто.
Andrey Degtyaruk
@hlogeon
Jul 04 2015 20:45
Это уже лишние сложности. Хочется же максимально просто
Route::get('/image/{width}/{height}') написать даже быстрее чем искать в query эти параметры
4gekkman
@4gekkman
Jul 04 2015 20:58
@hlogeon Смотри мини-инструкцию по организации кэширования в nginx по следующему адресу:
В главе: "Б1. NGINX: как организовать мгновенную загрузку N картинок в документе"
Это поверхностная заметка в стиле "как сделать это по быстрому"
Andrey Degtyaruk
@hlogeon
Jul 04 2015 21:11
@4gekkman
Спасибо огромное, нашел подтверждение словам про статью, которую прислал @Rhincodon
В итоге в рамках одного nginx инстанса нет способов?
Roman
@TeroBlaZe
Jul 04 2015 21:20
@4gekkman нечеловеческий труд))) Жаль только, что пока пишешь про одно, оно устаревает, меняется до узнаваемости и все с нуля...
Andrey Degtyaruk
@hlogeon
Jul 04 2015 21:21
Да уж, лютобешено плюсую
И отдельное спасибо за то, что в открытом доступе
Roman
@TeroBlaZe
Jul 04 2015 21:26
про http://devdocs.io вспомнилось что-то))
primalpro
@primalpro
Jul 04 2015 22:41
Как получить текущий url во вьюхе ?
Roman
@TeroBlaZe
Jul 04 2015 22:51
@primalpro так же как и в контроллере любом другом месте
Роман Сохарев
@greabock
Jul 04 2015 22:57
This message was deleted
JhaoDa
@jhaoda
Jul 04 2015 22:59
@greabock маты подтираешь?:)
primalpro
@primalpro
Jul 04 2015 23:04
@TeroBlaZe а как в контроллере ?
JhaoDa
@jhaoda
Jul 04 2015 23:04
@primalpro может доку откроешь?
primalpro
@primalpro
Jul 04 2015 23:05
@jhaoda я искал
JhaoDa
@jhaoda
Jul 04 2015 23:05
@primalpro где?
Roman
@TeroBlaZe
Jul 04 2015 23:06
@primalpro Как и в любом другом месте URL::current()URL::current()
primalpro
@primalpro
Jul 04 2015 23:06
@jhaoda ну я нашел тока curren page
@jhaoda и то не понял что это за ебала
@TeroBlaZe спасибо
Роман Сохарев
@greabock
Jul 04 2015 23:07
okay google, how to get current url laravel
primalpro
@primalpro
Jul 04 2015 23:08
@greabock спрашивал - вообщем проехали - всем спасибо
Роман Сохарев
@greabock
Jul 04 2015 23:08
спрашивал?
странно
у меня первая же ссылка с ответом
JhaoDa
@jhaoda
Jul 04 2015 23:09
Ну хоть бы один признался «мне лень думать, решил спросить здесь»
Ну хоть бы один признался «мне лень думать, решил спросить здесь»
Нет, сплошь отмазки и враньё...
Roman
@TeroBlaZe
Jul 04 2015 23:13
мне лень, сделайте всё за меня
JhaoDa
@jhaoda
Jul 04 2015 23:13
В школах надо не про религии задувать в уши, а учить искать инфу
Roman
@TeroBlaZe
Jul 04 2015 23:18
@jhaoda у нас здесь не запад, здесь в ряд ли будут что-то менять в течении правления одного поколения
и текущая политическая кампания делает всё возможное чтобы воспитать своих последователей, так как им нужно
primalpro
@primalpro
Jul 04 2015 23:21
@jhaoda я же написал я искал добрался до описания Апи но там я ничего не понимаю...
JhaoDa
@jhaoda
Jul 04 2015 23:21
@TeroBlaZe мы ту политику не любим
Roman
@TeroBlaZe
Jul 04 2015 23:22
@jhaoda а я ничего против не имею и никаких холиваров разжигать не собираюсь, каждый думает как ему хочется
JhaoDa
@jhaoda
Jul 04 2015 23:22
@primalpro первую ссылку видишь? «How to get the current URL inside @if statement (blade) in ...»
Теперь расскажи нам, где, что и как ты искал
вот тут я искал , он на пагинатор там ведет и на api )
JhaoDa
@jhaoda
Jul 04 2015 23:25
@primalpro а почему page-то?
В школе немецкий учил?
Roman
@TeroBlaZe
Jul 04 2015 23:26
фуфу делать английские запросы в яндексе, он же для домохозяек
primalpro
@primalpro
Jul 04 2015 23:26
@jhaoda я не программер, сеня моего препода нет в онлайне - так бы я у вас не спрашивал - знаю что камни полетят )
JhaoDa
@jhaoda
Jul 04 2015 23:27
@primalpro погоди, если ты не программер, то что ты тут делаешь?
primalpro
@primalpro
Jul 04 2015 23:28
@jhaoda я коммерс , мне нужно задачи решать - я решаю
спасибо за консультацию
Roman
@TeroBlaZe
Jul 04 2015 23:28
:back:
:door: :walking: