Евгений
привет
Евгений
может знает кто нибудь систему баннеров доп пакетом на laravel? надо вставлять баннеры картинками, и считать количество показов
J
привет
J
а может кто-нить ткнуть меня носом в ..... что-то
J
пишу ЮнитТест, для тестирования API
J
надо проверить, что отправляя POST-ом raw json в ответ получу json
J
а лара сопротивляется
J
public function testApiLoginByPOST() { Auth::logout(); $this->post('api/v1/login',[ 'email' => 'jst@test.lan', 'password' => '123456' ], [ 'CONTENT_TYPE' => 'application/json' ])->seeJson(['status'=> true]); }
J
вот не хочет тест ложить именно как raw строку
J
никто с таким не сталкивался ?
Виталий
$this->json('POST', 'url', $params)->seeJson(['status' => true]);
Виталий
надо проверить, что отправляя POST-ом raw json в ответ получу json
ну во первых ты тут не raw json отправляешь, а просто post data
J
вот именно, а как отправить raw ???
J
что-то никак не могу найти
Виталий
$this->json
J
уря!!! спасибо тебе милчеловек!!!!
Виталий
Обращайся)
J
@vsbeats а как из ответа взять голый json ?
Виталий
А вот этого не знаю, к сожалению, а зачем?
J
да там даскидистый json и надо оттуда данные использовать в следующих запросах
Виталий
Ну по идее $this->json возвращает ответ. Засовывай в переменную и юзай дальше
J
не, нифига так не пойдет!!! вот как поехало: $response = $this->json('POST', 'api/v1/login',[ 'email' => 'jst@test.lan', 'password' => '123456' ]); $response->assertResponseOk(); $content = $response->decodeResponseJson();
Виталий
Ну так я это и имел ввиду)
Anonymous
/
Евгений
посоны, посмотрите код
Евгений
public function scopeToShow($query, $flag = 1) { return $query->where('is_active', $flag)->whereColumn('views', '<', 'max_views')->where('end_date', '=', '0000-00-00 00:00:00')->orWhere('end_date', '>', Date::now()); }
Евгений
как можно упростить вот с датой 0000-00-00...
Евгений
это типа баннеры, который проходят условия для показа
Евгений
если баннер активирован, если количество показом меньше максимального количества показов, и если дата меньше финишной даты, но по дефолту там дата 0000-00, поэтому надо учесть что если дата дефолтная то баннер подходит
Dmitry [დმიტრი]
Так нулевая меньше любой же
Евгений
да
Dmitry [დმიტრი]
А, я тебя не так понял
Евгений
но если у меня end_date нудевая, то она явно меньше чем date::now(), тj есть не пройдет, а показывать надо
Евгений
ну то есть моя выборка вроде как работает, но не знаю как упростить вот сравнение с 0000
Dmitry [დმიტრი]
А как это - дефолтная дата Ну в смысле откуда у тебя в бд вообще берутся значения с дефолтной датой
Евгений
смотри, добавляю баннер в системе, и задаю финишную дату до которой баннер показывается, но могу и ничего не задавать, тогда в базу пишутся нули
Dmitry [დმიტრი]
Так а ты всегда задавай
Евгений
блин, при моей выборке не срабатывает сравнение с максимальным количеством показов
Евгений
Так а ты всегда задавай
так мне не надо всегда. есть баннеры без конечной даты
Евгений
можно конечно им в таком случае задавать дату + 100 лет
Dmitry [დმიტრი]
Ну да))
Евгений
блин, ну немного тупо просто))
Dmitry [დმიტრი]
Ну а нулевая дата тоже имхо не пример логичности
Евгений
жаль у даты нельзя задать null
Евгений
ну ладно, вроде всё сделал, пусть пока так работает, если что быстро поменять можно будет))
Miras Yerzhanuly
Кто нибудь может объяснить что за двоеточие в абстрактом методе.
Miras Yerzhanuly
https://github.com/domnikl/DesignPatternsPHP/blob/master/Creational/AbstractFactory/AbstractFactory.php
Юрий
Пхп7
Юрий
Типы скалярных параметров и подсказки (hints) по возвращаемым типам В PHP 7 расширили ранее существовавшее объявление параметров в методах (классах, интерфейсах и массивах) путем добавления четырех скалярных типов — целого (int), с плавающей запятой (float), логического (bool) и строкового (string) в качестве возможного типа параметра. Кроме того, опционально мы можем указать тип результата, возвращаемого функцией или методом. Поддерживаются типы bool, int, float, string, array, callable, имя класса или интерфейса и parent (для методов класса). class Calculator { // объявляем, что параметры имеют целый тип integer public function addTwoInts(int $x, int $y): int { // явно объявляем, что метод возвращает целое return $x + $y; } } Объявление типов позволит строить прозрачные приложения, избегая передачи и возврата неверных значений при работе с функциями. Другие плюсы — появление анализаторов статического кода и IDE, предлагающих более ясное отображение кода при отсутствии документирующих примечаний DocBlocks.
Pin
могу обхяснить
Pin
возвращаемый тип
Pin
сам активно использую в фабриках
Pin
твои фабрики наследуются от base фабрики
Pin
которую ты указываешь в creator'е
Pin
типизация во все поля:3
Pin
Pin
вот живой пример
Юрий
Но стоит учитывать что благодаря слабой типизации пхп если ты укажешь там тип строки например, крайне вероятно что он инты через нее пропустит
Юрий
Просто приведя тип к строке
Pin
ну если strict mode не выставить не пропустит
Юрий
declare(strict_types=1); в каждом файле после открывающего тега пхп в таком случае ставят
Pin
а в обычном режиме не тестил..
Pin
да да
Pin
либо опцией в пыхе
Юрий
Вообще это звучит как костыль(
Miras Yerzhanuly
Т.е я правильно понял, если тип результата я буду указывать имя класса. То должен возвращаться этот класс, точнее экземпляр объекта?
Pin
да, экземпляр это класса или наследник
Miras Yerzhanuly
Спасибо, очень помогли.
Ilyas
Это типа как Generics в Java?
Юрий
http://symfony.com/blog/new-in-symfony-3-3-dotenv-component
Юрий
забавно, в симфони тоже .env запилили
Dmitriy
Так не в этом смысл, в том что Фабиен создал свой велосипед.
Dmitriy
А есть общепринятый стандарт?
Я про пакет, а не взял готовый как ларка
darkwoolf
darkwoolf
вот такая ошибочка
darkwoolf
Route::any('/', function (){ return view("welcome"); });
darkwoolf
вот это весь код в routes/web.php