These are chat archives for LaravelRUS/chat

11th
Mar 2015
Роман Сохарев
@greabock
Mar 11 2015 00:49 UTC
@Butochnikov ты чего не спишь? )
Alexey
@Butochnikov
Mar 11 2015 00:50 UTC
работаю
LaravelButler

Приветствуем Вас, @navjeetc, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

unlike777
@unlike777
Mar 11 2015 06:37 UTC
Подскажите пожалуйста как правильно связать 2 таблицы без join'ов
Основная проблема это с префиксами таблицы, как правильно написать условие where когда нужно связать по ключу t1.id = t2.good_id
обычный where не понимает когда в значение передаешь строку t2.good_id, можно использовать whereRaw но тогда префиксы не подставляются автоматически приходится писать 'prefix_table'.good_id
unlike777
@unlike777
Mar 11 2015 06:59 UTC
попробую попроще объяснить что мне требуется...
есть таблица goods 2 поля id, other_id
мне нужно выбрать все записи где id = other_id
как такой запрос правильно составить на laravel?
where не работает потому что ->where('goods.id', '=', 'goods.other_id') лара думает что 3 параметр это просто значение, а не столбец
я просто не верю что в ларе не предусмотрено такое простое действие "равенство двух столбцов"
unlike777
@unlike777
Mar 11 2015 07:04 UTC
уже весь нет перерыл, осталась надежда только на чат
NelinD
@NelinD
Mar 11 2015 07:14 UTC
https://laravel.ru/forum/viewtopic.php?id=808
ответ прямо по сути=)
Константин Брызгалин
@constb
Mar 11 2015 07:26 UTC
@NelinD )
Viktor Grachev
@azuron
Mar 11 2015 07:28 UTC
Всем доброго дня)
unlike777
@unlike777
Mar 11 2015 07:31 UTC
Доброго
Viktor Grachev
@azuron
Mar 11 2015 07:52 UTC

Ребята подскажите плиз. что то я уже совсем не пониаю) перешел с 4 лары на 5. установил через композер локально свежую версию. если я правильно понимаю то мне нужно сделать настройки локального окружения.
ввожу команду php artisan env мне пишет Current application environment: local значит я в локальном окружении)
открываю файл .env в корне и ввожу туда настройки базы данных как пишут в мане) при попытке выполнить миграцию пишет:

[PDOException]                                    
  SQLSTATE[HY000] [2002] No such file or directory

где я упустил суть? все маны как клоны друг друга и везде написано одно и то же) почему нет подключения к базе?

LaravelButler

Приветствуем Вас, @kirill001, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Kirill
@kirill001
Mar 11 2015 08:05 UTC
@unlike777 четвертым параметров true укажи, с джоин работает
Подскажите пожалуйста, где и как правильно хранить свои библиотеки/классы, и как к ним обращаться? 4 ларавел
unlike777
@unlike777
Mar 11 2015 08:10 UTC
@kirill001 в любом удобном тебе месте, я храню в /app/libs , но только не забудь путь в автозагрузчик добавить
Kirill
@kirill001
Mar 11 2015 08:11 UTC
@unlike777 спасибо
unlike777
@unlike777
Mar 11 2015 08:12 UTC
@kirill001 4 параметр в where это 'and' или 'or'
LaravelButler

Приветствуем Вас, @vunguyentuan, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Orel
@2byte
Mar 11 2015 09:21 UTC
Есть Yii`ты ?
Константин Брызгалин
@constb
Mar 11 2015 09:28 UTC
@2byte я работал с Yii, но не скажу что прям отлично в нём разбираюсь. уж больно он дремучий, по крайней мере 1.х
Brezhnev Ivan
@vanchelo
Mar 11 2015 09:29 UTC
)
censoredgit
@censoredgit
Mar 11 2015 09:30 UTC
есть
даже проект делал
LaravelButler

Приветствуем Вас, @DDiimmkkaass, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Oleg
@tremor-od
Mar 11 2015 10:05 UTC
подскажите пожалуйста может кто сталкивался с таким.
Есть ссылка /category/0004?sort=advansive
Есть ли какой-то хелпер который уберет мне все что после "?" или это нужно самому писать хелпер? В хелперах url не нашел
Nikolay Kostyurin
@JiLiZART
Mar 11 2015 10:07 UTC
@2byte зачем тебе yii'ты?
Mikhail Donskoy
@mdnsk
Mar 11 2015 10:08 UTC
@azuron Проверь подключение к БД из PHP:
php -d error_reporting="E_ALL" -r "new PDO('mysql:dbname=DBName;host=localhost', 'UserName', 'Password');"
NelinD
@NelinD
Mar 11 2015 10:11 UTC
less'сты есть?
Alexander Popov
@ruelephant
Mar 11 2015 10:11 UTC
народ канал по ларе
мы не обсуждаем размножение белых насорогов
ну может иногда
NelinD
@NelinD
Mar 11 2015 10:12 UTC
@ruelephant а слонов?
Orel
@2byte
Mar 11 2015 10:12 UTC
@NelinD есть )
Константин Брызгалин
@constb
Mar 11 2015 10:13 UTC
@tremor-od php функция parse_url устроит?
Orel
@2byte
Mar 11 2015 10:13 UTC
@JiLiZART знакомый хотел проект сделать на yii
Nikolay Kostyurin
@JiLiZART
Mar 11 2015 10:14 UTC
и, что его остановило?
Orel
@2byte
Mar 11 2015 10:14 UTC
@JiLiZART заказать
Nikolay Kostyurin
@JiLiZART
Mar 11 2015 10:14 UTC
ну есть площадки для этого, или можно на форум русского сообщества написать
Alexander Popov
@ruelephant
Mar 11 2015 10:14 UTC
его заказали
Orel
@2byte
Mar 11 2015 10:15 UTC
@JiLiZART не хочет гемора с рекрутингом
Alexander Popov
@ruelephant
Mar 11 2015 10:16 UTC
если шо там, пишите
любое говно за ваши деньги
Yii знаю
Orel
@2byte
Mar 11 2015 10:18 UTC
@ruelephant Буду иметь ввиду)
Alexander Popov
@ruelephant
Mar 11 2015 10:18 UTC
@2byte проекты 500 рублей/неделя не беспокоить :)
ставка 500 руб/ч базовая
Orel
@2byte
Mar 11 2015 10:20 UTC
@ruelephant Я понял)
Oleg
@tremor-od
Mar 11 2015 10:21 UTC
@constb та я думал , что есть у ларавела что-то стандартное но походу прийдеться свой хелпер писать для этого
Alexander Popov
@ruelephant
Mar 11 2015 10:22 UTC
по поводу лары, Route::resource('api/{apiVersion}/webinar', 'WebinarController');
почему он пытается получить значение то "Undefined variable: apiVersion"
он же должен его наоборот с URL забить
Anonim-khb
@Anonim-khb
Mar 11 2015 10:24 UTC
Всем привет. Подскажите, как-то изменились регистрация, авторизация и восстановление пароля в 5-ке?
Alexander Popov
@ruelephant
Mar 11 2015 10:27 UTC
походу все вымерли
искать до заголовка "User Authentication Model"
Vlad Barinov
@vbarinov
Mar 11 2015 10:44 UTC
@azuron что у тебя в файле config/database.php?
Viktor Grachev
@azuron
Mar 11 2015 10:45 UTC
@vbarinov там прописал настройки тоже для конекта к базе
Vlad Barinov
@vbarinov
Mar 11 2015 10:46 UTC
если там ты убрал env(переменная_окружения, умолч.), то данные из .env не сработают
какой драйвер? mysql?
Viktor Grachev
@azuron
Mar 11 2015 10:49 UTC
@BaldaI все та же ошибка
php -d error_reporting="E_ALL" -r "new PDO('mysql:dbname=lara5;host=localhost', 'lara5', '123');"
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in Command line code:1
Stack trace:
#0 Command line code(1): PDO->__construct('mysql:dbname=lara5', 'lara5', '123')
#1 {main}
  thrown in Command line code on line 1

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in Command line code:1
Stack trace:
#0 Command line code(1): PDO->__construct('mysql:dbname=la...', 'lara5', '123123')
#1 {main}
  thrown in Command line code on line 1
@vbarinov да драйвер mysql
Vlad Barinov
@vbarinov
Mar 11 2015 10:50 UTC
mysql --version работает?
Viktor Grachev
@azuron
Mar 11 2015 10:50 UTC
'default' => 'mysql',

'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'lara5'),
            'username'  => env('DB_USERNAME', 'lara5'),
            'password'  => env('DB_PASSWORD', '123'),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],
Vlad Barinov
@vbarinov
Mar 11 2015 10:50 UTC
пароль и имя базы точно те? имхо, что-то с окружением
Viktor Grachev
@azuron
Mar 11 2015 10:51 UTC
нет не пашет
Vlad Barinov
@vbarinov
Mar 11 2015 10:51 UTC
в какой системе laravel работает?
Viktor Grachev
@azuron
Mar 11 2015 10:51 UTC
вот и я уже не знаю в чем дело может лара не видит мускул
мак
@azuron mamp?
Viktor Grachev
@azuron
Mar 11 2015 10:52 UTC
@2bj да
@azuron попробуй сокет прописать
Orel
@2byte
Mar 11 2015 10:52 UTC
AES-256,128 подлежит расшифровки без ключа?
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'
Viktor Grachev
@azuron
Mar 11 2015 10:53 UTC
@2bj понял спасибо, это в config/database.php?
@azuron да
Vlad Barinov
@vbarinov
Mar 11 2015 10:54 UTC
ещё может mysql сидеть на порте 8889, в этом случае добавить к конфигу 'port' => 8889

@azuron
.env
DB_UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

database.php
'unix_socket' => env('DB_UNIX_SOCKET', null),

Alexander Popov
@ruelephant
Mar 11 2015 10:55 UTC
Route::group(['middleware' => 'tokenAuth', 'namespace' => 'Api'], function()
{
    Route::resource('api/{apiVersion}/webinar', 'RestController');
    Route::resource('api/{apiVersion}/user', 'RestController');
});
Viktor Grachev
@azuron
Mar 11 2015 10:55 UTC
@2bj прописал все так же((
Alexander Popov
@ruelephant
Mar 11 2015 10:55 UTC
я вот думаю, может так сделать? а внутрь RestController уже вызывать "нужные" классы
@azuron порт чекни
Alexander Popov
@ruelephant
Mar 11 2015 10:56 UTC
или это будет не феншуй?
Vlad Barinov
@vbarinov
Mar 11 2015 10:56 UTC
@azuron советую homestead настроить
Viktor Grachev
@azuron
Mar 11 2015 10:56 UTC
@2bj а как?
@vbarinov я вот тоже уже думаю об этом)) а то мам с ларой как то не дружит у меня)
Alexander Popov
@ruelephant
Mar 11 2015 10:56 UTC
есть еще вариант одной строкой
Route::resource('api/{apiVersion}/{method}', 'RestController');
как вам? красиво? :)
Orel
@2byte
Mar 11 2015 10:57 UTC
@ruelephant :+1:
Viktor Grachev
@azuron
Mar 11 2015 10:58 UTC
@2bj не буду голову ломать и себе и людям) настрою хомстед
Alexander Popov
@ruelephant
Mar 11 2015 10:58 UTC
а более авторитетные товарищи что скажут? :)
Viktor Grachev
@azuron
Mar 11 2015 10:58 UTC
спасибо всем за советы!
Vlad Barinov
@vbarinov
Mar 11 2015 10:59 UTC
после Zend2 маршруты Laravel просто сказка. @ruelephant шикарно
@azuron хомстед тормознутый (mac + virtualbox)
@azuron shared folders тупит
Viktor Grachev
@azuron
Mar 11 2015 11:00 UTC
@2bj знаю но как победить мамп)
Vlad Barinov
@vbarinov
Mar 11 2015 11:00 UTC
@2bj NFS :)
Viktor Grachev
@azuron
Mar 11 2015 11:00 UTC
просто решил поработать правильно на локалке и изменения комитить через гит а тут такая засада))
Vlad Barinov
@vbarinov
Mar 11 2015 11:01 UTC
пишешь type: nfs в шарную папку и всё летает
@azuron вообще всё можно поставить через homebrew
Viktor Grachev
@azuron
Mar 11 2015 11:02 UTC
вместо мампа?
php+mysql
@vbarinov насколько летает?
@azuron да
nginx + php-fpm
Viktor Grachev
@azuron
Mar 11 2015 11:03 UTC
@2bj кстати тоже как вариант) спасибо!
@vbarinov спс
Vlad Barinov
@vbarinov
Mar 11 2015 11:04 UTC
на порядок быстрее чем чистый vbox. один минус, из под windows куча проблем с этим
Alexander Popov
@ruelephant
Mar 11 2015 11:04 UTC
@slider23 еу еу
@vbarinov к сожалению, не получится проверить под виндоус )
Vlad Barinov
@vbarinov
Mar 11 2015 11:05 UTC
@2bj счастливчик, я из под windows мазохизмом порою занимаюсь
Константин Брызгалин
@constb
Mar 11 2015 11:08 UTC
а никому на торрентах не попадался драйвер вмвари для вагранта? =)
Vladislav Maksimchuk
@condoriano
Mar 11 2015 11:27 UTC
а никто не пытался хранить в .env массивы массивов?
Brezhnev Ivan
@vanchelo
Mar 11 2015 11:33 UTC
нет, зачем?
для этого есть файлы конфигурации
Alexander Popov
@ruelephant
Mar 11 2015 11:51 UTC
бред
Route pattern "/api/{apiVersion}/{apiMethod}/{{apiMethod}}" cannot reference variable name "apiMethod" more than once.
причем обращение идет вообще к 404 пути
типо /blablabla
Vladislav Maksimchuk
@condoriano
Mar 11 2015 11:52 UTC
@vanchelo например хранить список имейлов для рассылки инфы о заказе
@vanchelo но как только я написал в чат, я внезапно вспомнил про «,» + «explode»
Alexander Popov
@ruelephant
Mar 11 2015 11:52 UTC
неед хелп :)
загадка века
почему он трогает этот роут
он же не совпадает
Route::get('/', 'HomeController@index');
Route::post('/auth', 'HomeController@auth');
Route::post('/medooze', 'HomeController@medooze');
Route::group(['middleware' => 'tokenAuth'], function()
{
    Route::resource('/api/{apiVersion}/{apiMethod}', 'RestController');
});
вот так выглядят все роуты
LogicException in RouteCompiler.php line 102:
Route pattern "/api/{apiVersion}/{apiMethod}/{{apiMethod}}" cannot reference variable name "apiMethod" more than once.
я что-то не понимаю?
Alexander Popov
@ruelephant
Mar 11 2015 11:58 UTC
хм
/ в конце поставить и все сразу гуд
баг похоже
Константин Брызгалин
@constb
Mar 11 2015 12:16 UTC
@ruelephant может ресурс у себя внутри использует свой собственный apiMethod?
LaravelButler

Приветствуем Вас, @lbond, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

hvarts
@hvarts
Mar 11 2015 12:39 UTC
Ребят, как контроллеру обратится к модели?
Я пытаюсь в контролле обратится к методу $addnews = News::add();, который находится в модели
Vladislav Maksimchuk
@condoriano
Mar 11 2015 12:40 UTC
а проблема в чем?
hvarts
@hvarts
Mar 11 2015 12:40 UTC
@condoriano FatalErrorException in NewsController.php line 31:
Class 'App\Http\Controllers\News' not found
не понимаю какую зону видимости ему надо установить
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:44 UTC
\News::add()?
hvarts
@hvarts
Mar 11 2015 12:44 UTC
Class 'News' not found
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:45 UTC
ну посмотри где он у тебя
в каком неймспейсе
hvarts
@hvarts
Mar 11 2015 12:45 UTC
@SerafimArts вот вся модель News

<?php namespace App;

class News extends Model {

public static function add($data)
{
    $news = new News();
    $news->title = $data['title'];
    $news->body = $data['body'];
    $news->save();
}

}

Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:45 UTC
омфг
Vladislav Maksimchuk
@condoriano
Mar 11 2015 12:45 UTC
заметил много народу учит «программирование» с фреймворка, а не с языка
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:46 UTC
чёрным по белому же написан неймспейс
@condoriano +1
только что хотел написать, чтоб отправлялись учить язык для начала, а потом уже развлекались с фреймами
@hvarts ты уже понял в чём у тебя проблема, объяснять не надо?
hvarts
@hvarts
Mar 11 2015 12:47 UTC
@SerafimArts можно разок объяснить?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:47 UTC
ты знаешь что такое пространство имён?
hvarts
@hvarts
Mar 11 2015 12:48 UTC
@SerafimArts я уже понял, что он не видет модель News
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:49 UTC
public static function add(array $data)
{
  $news = new static;
  $news->title = $data['title'];
  $news->body = $data['body'];
  $news->save();
}
для начала =)
во вторых - в контроллере News добавить use App\News as NewsModel;
NewsModel::add(['title' => 'some', 'body' => 'any']);
hvarts
@hvarts
Mar 11 2015 12:53 UTC
@SerafimArts опять же Class 'News' not found
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:53 UTC
автолоадинг нормально настроен?
hvarts
@hvarts
Mar 11 2015 12:54 UTC
@SerafimArts не настраивал вообще
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:55 UTC
ну в таком случае с чего ты решил, что класс должен грузиться?
hvarts
@hvarts
Mar 11 2015 12:55 UTC
@SerafimArts где настраивается автолоадинг?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:56 UTC
в композере например
Denis Isaychenko
@Rhincodon
Mar 11 2015 12:56 UTC
  • в компостере :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:57 UTC
(с) Паук
ага
например
hvarts
@hvarts
Mar 11 2015 12:57 UTC
Я окончательно запутался. :(
Orel
@2byte
Mar 11 2015 12:58 UTC
@hvarts какая версия лары?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:58 UTC
@2byte ты действительно собираешься помогать человеку, который даже языка не знает, но лезет в дебри? +)
hvarts
@hvarts
Mar 11 2015 12:58 UTC
@2byte 5
@2byte я на 4-м мог писать, там не было байды с namespace aka use
Denis Isaychenko
@Rhincodon
Mar 11 2015 13:00 UTC
байды :)
Alexander Popov
@ruelephant
Mar 11 2015 13:00 UTC
согласен
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:00 UTC
эта "байда" везде была
Alexander Popov
@ruelephant
Mar 11 2015 13:00 UTC
в php 3 трава зеленей была
можно было сразу писать в URL &is_admin=true
и оно было доступно как $is_admin
вот это была жизнь
и только православные include
Orel
@2byte
Mar 11 2015 13:02 UTC
@hvarts покажи свой контроллер, а точнее файл контроллера
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:03 UTC
да!
Function php2rule $y (print "php 2 $y!");
Alexander Popov
@ruelephant
Mar 11 2015 13:03 UTC
боже что это?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:03 UTC
php 2
Точнее php/fi
Alexander Popov
@ruelephant
Mar 11 2015 13:04 UTC
а ты знаешь древнее кун-фу
:)
Orel
@2byte
Mar 11 2015 13:04 UTC
@SerafimArts ну с моделькой можно помочь, может смотивирует разобраться почему это так)
Denis Isaychenko
@Rhincodon
Mar 11 2015 13:04 UTC
древнее фу фу :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:04 UTC
:D
только что узнал
только тссс
Alexander Popov
@ruelephant
Mar 11 2015 13:05 UTC
$err_code = @dbmopen($filename,"w");
как я скучаю по тебе.... @ в коде
никаких тебе try
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:06 UTC
@fopen!
Alexander Popov
@ruelephant
Mar 11 2015 13:06 UTC
суровые мужики сурово подавляют
@userFunction()
Orel
@2byte
Mar 11 2015 13:06 UTC
:smile:
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:06 UTC
подавляющая суровость
Alexander Popov
@ruelephant
Mar 11 2015 13:06 UTC
суровый программист - 99 лвл
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:07 UTC
или просто эльф
Alexander Popov
@ruelephant
Mar 11 2015 13:07 UTC
а кто помнит конструкцию "or die();"
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:07 UTC
программирование в стиле эльфийской магии
Orel
@2byte
Mar 11 2015 13:07 UTC
@ruelephant яя) в паре mysql_connect
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:07 UTC
это не конструкция
Alexander Popov
@ruelephant
Mar 11 2015 13:07 UTC
mysql_connect() or die('Мы сломались');
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:07 UTC
это поведение
Alexander Popov
@ruelephant
Mar 11 2015 13:08 UTC
а до этого еще кусок шапки дизайна...
подвал уже не догрузился
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:08 UTC
mysql_connect возвращает bool
по этому условный оператор "или" продолжает свой полёт =)
Alexander Popov
@ruelephant
Mar 11 2015 13:08 UTC
ну в общем это конструкция
хоть и не языковая
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:08 UTC
нет
языковая
if($some or $any) {}
будет то же самое
Alexander Popov
@ruelephant
Mar 11 2015 13:09 UTC
у нас путиница в терминологии
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:09 UTC
это не синтаксическая лексема, ты хотел сказать =)
а обычный оператор
Orel
@2byte
Mar 11 2015 13:09 UTC
Столько безопасных кодеров было, которые защищали свои формы xss(mysql_real_escape_string(check($_POST)))
Alexander Popov
@ruelephant
Mar 11 2015 13:09 UTC
о да
еще html_strip_tags
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:10 UTC
tags!
html_strip_tags!
Orel
@2byte
Mar 11 2015 13:10 UTC
Да да))
Alexander Popov
@ruelephant
Mar 11 2015 13:10 UTC
зануда!
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:10 UTC
это надо наизусть знать!
:D
Иначе ты не настоящий пыхер
Orel
@2byte
Mar 11 2015 13:11 UTC
В каждом файле session_start(); )))
Alexander Popov
@ruelephant
Mar 11 2015 13:11 UTC
о да
if(!isset($_SESSION)) {
     session_start();
}
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:12 UTC
defined('MY_PROGRAMM') or die('Нельзя вызвать файл');
Oleg
@tremor-od
Mar 11 2015 13:12 UTC
подскажите пожалуйста , можно ли проверку вставить как-то между where и orderBy или нужно в модели делать такие вещи
Product::where('sort', '>=', $selectedCategory->code_min)->orderBy('sort', 'asc')->get();
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:13 UTC
можно
вначале засунуть первую половину в переменную, а потом из неё вызвать вторую половину
Alexander Popov
@ruelephant
Mar 11 2015 13:13 UTC
<?php
question(toBe() or notToBe());
?>
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:13 UTC
а потом опять заиспользовать первую, добавить туда условие
Oleg
@tremor-od
Mar 11 2015 13:13 UTC
ага, спасибо, попробу.
Alexander Popov
@ruelephant
Mar 11 2015 13:14 UTC
это поэзия! :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:14 UTC
@ruelephant кофе - вот это поэзия
ща
Alexander Popov
@ruelephant
Mar 11 2015 13:15 UTC
Orel
@2byte
Mar 11 2015 13:15 UTC
Еще установка различных magic_quotes safe_mode
Alexander Popov
@ruelephant
Mar 11 2015 13:15 UTC
читать как стихи :)
Orel
@2byte
Mar 11 2015 13:16 UTC
@ruelephant ахаха :smile:
:D
Alexander Popov
@ruelephant
Mar 11 2015 13:18 UTC
я вот думаю как избавиться от restController
он же по сути прокладка
не охото прибегать к методу __call или в каждом методе писать "прокси"
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:19 UTC

из

to be or not to be - that is the question

получаем:

to(be || !to(be - that === the(question)));
Alexander Popov
@ruelephant
Mar 11 2015 13:20 UTC
аго
Alexander Popov
@ruelephant
Mar 11 2015 13:25 UTC
почему нельзя сделать
Route::resource('/api/{apiVersion}/{apiMethod}/', function ($apiVersion, $apiMethod) {
        var_dump($apiVersion);
});
хотеть!
LaravelButler

Приветствуем Вас, @Artemka37, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

sergio-l
@sergio-l
Mar 11 2015 13:28 UTC
Все привет, вопрос не по ларавел кто нибуть использовал google api для сайта?
Alexander Popov
@ruelephant
Mar 11 2015 13:29 UTC
сегодня прям день вопросов "не по ларевел"
Artem Igntovsky
@Artemka37
Mar 11 2015 13:30 UTC
Всем доброго времени суток. Устанавливаю laravel через композер в консоле. Когда начинается установка зависимостей , консоль зависает. Что это может быть? Использую OpenServer
Kirill
@kirill001
Mar 11 2015 13:44 UTC
Помогите, вопрос не по ларавелу. Опенсервер использую, раскомментирую xdebug в php.ini , перезагружаю сервер, он php.ini перезаписывает, и там xdebug снова закомментирован
Alexander Popov
@ruelephant
Mar 11 2015 13:44 UTC
в таких случах рядом обычно файл под юзвер опции делают
разработчики
посмотри что в php.ini проиклюжено
Kirill
@kirill001
Mar 11 2015 13:46 UTC
да ничего вроде, стандартный опенсервер
Alexander Popov
@ruelephant
Mar 11 2015 13:50 UTC
я про разработчиков опенсервера, разве там рядом нет еще ini?
не могут они его перезаписывать просто так поверх
Orel
@2byte
Mar 11 2015 13:53 UTC
Вместо dump-autoload artisan clear-compiled ?
Alexander Popov
@ruelephant
Mar 11 2015 13:54 UTC
народ, а как корректно сделать схему "вилки" контролеров
по роуту вызывается контролер А, и там дальше в зависимости от логики идет вызов B или С
типо проксирования
положение осложняется тем, что там Route::resource который не держит замыкание в качестве аргумента
только строку которая должна указывать на имя класса
если в каждом методе rest cделать "прокси" то получится что рядом лежат классы со структорой контролера, но не контролеры
надеюсь понятно объяснил
Alexander Popov
@ruelephant
Mar 11 2015 14:02 UTC
и тишина
либо вопрос слишком тупой, либо слишком умный
Orel
@2byte
Mar 11 2015 14:07 UTC
@ruelephant либо слишком большой)
NelinD
@NelinD
Mar 11 2015 14:07 UTC
@ruelephant может описание заменить на пример?
censoredgit
@censoredgit
Mar 11 2015 14:08 UTC
@ruelephant нафига тебе это?
Alexander Popov
@ruelephant
Mar 11 2015 14:11 UTC
там несколько паралельных версий апи идеи
вот я и хочу сделать ветвение
в контролере, по парамсам
@censoredgit
censoredgit
@censoredgit
Mar 11 2015 14:13 UTC
@ruelephant помню видел решение. для каждой версии создавалась своя папка(v1, v2, и т.п.) с контроллерами и в роутах это разруливалось
Alexander Popov
@ruelephant
Mar 11 2015 14:14 UTC
ну а как ты в роутах разрулишь?
Route::resource принимает только контролер
только если свою реализацию его писать
конечно можно под каждую версию закопипастить роуты, но не камефлю
censoredgit
@censoredgit
Mar 11 2015 14:29 UTC
@ruelephant ну да.. для каждой версии свою группу роутов делать
Alexander Popov
@ruelephant
Mar 11 2015 14:31 UTC
НООООУ :)
не хочу так
это копипаста
Alexander Popov
@ruelephant
Mar 11 2015 14:33 UTC
"В Томске обезвредили семью похитителей резиновых лошадок" вот это жесть :)
Ограбление века!
каждая лошадка 89 рублей
за несколько дней они вынесли несколько десятков штук
на миллион надо вынести 11236 штук, если в день выносить 10 штук, то это 1123 дней, делим на 5 дней в неделю получаем 224 недель или грубо 5 лет :)
Alexander Popov
@ruelephant
Mar 11 2015 14:38 UTC
просто золотая жила
censoredgit
@censoredgit
Mar 11 2015 14:38 UTC
@ruelephant или сделай как в вк : &v=5.28
Alexander Popov
@ruelephant
Mar 11 2015 14:38 UTC
@censoredgit и что это даст? :)
censoredgit
@censoredgit
Mar 11 2015 14:39 UTC
@ruelephant в роуте получай эту переменную и разруливай
Alexander Popov
@ruelephant
Mar 11 2015 14:40 UTC
@censoredgit вчера мне орали что динамические роуты зло
Роман Сохарев
@greabock
Mar 11 2015 14:41 UTC
@ruelephant никто тебе ничего не орал, выбирай менее экспрессивные выражения
Alexander Popov
@ruelephant
Mar 11 2015 14:42 UTC
ну ладно предлагали
@greabock может в мой восполенный мозг рисует картины как вы на другой стороне ломаете клавиатуры об монитор :) Кто знает
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:45 UTC
я только мышку, всё ок
Denis Isaychenko
@Rhincodon
Mar 11 2015 14:45 UTC
блин, промазал по кнопке и вышел из чата laravel.ru :)
Alexander Popov
@ruelephant
Mar 11 2015 14:46 UTC
печаль
мы скорбели по тебе, помянули секундой молчания
Denis Isaychenko
@Rhincodon
Mar 11 2015 14:46 UTC
всё, вернулся
почему люди так не любят репозитории и считают DDD ересью? :)
Alexander Popov
@ruelephant
Mar 11 2015 14:47 UTC
оверинженеринг? :)
надо брать российские реалии
мы плаваем в лужах корпоративного говна как правило
если ты пишешь комментарии то уже можешь брать золотую шоколадную медаль
@censoredgit спасибо за ссыль, сейчас так попробую сделать
@censoredgit хотя пахнет костылем :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:51 UTC
@Rhincodon а зачем оно нужно?
репозитории - это регрессия эктиврекорда, как я уже упомянал на страничке
с ссылкой на дядю Мартина
В года 2002-3х я как-то увидел в одном "модном" сайте ссылки вида "url.html?PHPSESSID={hash}". Думаю, во крутые. Потом в своем проекте этот PHPSESSID сам генерил и добавлял ко всем ссылкам. Сам, вручную! Вот это было круто! )
Alexander Popov
@ruelephant
Mar 11 2015 14:52 UTC
что за "эктиврекорда"
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:52 UTC
это паттерн такой
Denis Isaychenko
@Rhincodon
Mar 11 2015 14:52 UTC
@SerafimArts да да, я уже начитался там :)
Alexander Popov
@ruelephant
Mar 11 2015 14:52 UTC
да я только что перевел на английский это :)
и тогда дошло
@SerafimArts нет не регрессия
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:53 UTC
учитывая то, что репозиторий является составной частью AR...
Alexander Popov
@ruelephant
Mar 11 2015 14:53 UTC
репозиторий может выступать надстройкой ActiveRecord
для инкапсуляции движка например
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:53 UTC
лол
AR уже реализует этот функционал
внутри
так что это паттерн ради паттернов
Alexander Popov
@ruelephant
Mar 11 2015 14:54 UTC
@SerafimArts "ELOQUENT ORM" это activerecord?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:54 UTC
так же как сделать синглтон из регистри
да, классический эктиврекорд
Alexander Popov
@ruelephant
Mar 11 2015 14:54 UTC
так вот
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:54 UTC
слизанный почти что полностью с рельсового
Alexander Popov
@ruelephant
Mar 11 2015 14:54 UTC
народ его оборачивает в репозиторий
ибо он монгу например не держит, а иногда надо
требуется полностью заменить движок, прозрачно
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:55 UTC
это просто из-за кривой реализации элоквента
Alexander Popov
@ruelephant
Mar 11 2015 14:55 UTC
ты же понимаешь что это камень в сторону Тейлора? :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:55 UTC
хотя ничего не мешает просто добавить такой же драйвер
Я Тейлора уже закидал камнями
ещё один не помешает
=)
Alexander Popov
@ruelephant
Mar 11 2015 14:56 UTC
на этом канале нельзя упоминать имя ЕГО в суе
еретик!
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:57 UTC
давай я приведу тебе примеры
а ты сделаешь выводы
Alexander Popov
@ruelephant
Mar 11 2015 14:57 UTC
давай
только предупреждаю чревато холиваром на пол канала
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 14:57 UTC
1) Год назад я закоммитил PSR-2 в лару, Тейлор отклонил его. И сейчас, в 5.1 его добавил - это практически единственное отличие от 5.0
2) Eloquent не поддерживает работу с несколькими БД, используя метод on('***') - ты лишаешься всех связей (many 2 many, on 2 many и проч.). Моё исправление с тестами он отклонил - сказал, что он не пользуется несколькими подключениями, так что и никому не следует.
Alexander Popov
@ruelephant
Mar 11 2015 15:01 UTC
ну это в основном ближе к религии аргументы
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:01 UTC
3) Почти все поля в Eloquten НЕ статические и область видимости совершенно рандомная, при этом поля принадлежат по-факту классу, а не инстансу ($table, $hidden) и прочее. Это совершенно никого не будет беспокоить до тех пор, пока не захочется использовать аннотации или мапперы
4) Все методы обновления полей моделей именуются кое-как, некоторые через set***, некоторые просто ***, некоторые update***
Alexander Popov
@ruelephant
Mar 11 2015 15:03 UTC
может несколько разработчиков писали?
как с пыхом вышло
я про п4
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:03 UTC
5) Route::*** имеет метод where, но зато Route::group(['prefix' => '/some/{any}', function(){ })->where('any', '.*?'); написать невозможно
Alexander Popov
@ruelephant
Mar 11 2015 15:04 UTC
ну это да
кстати Route::resource
забит гвоздями второй аргумент
"только контролер"
невозможно пост обработку сделать
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:04 UTC
6) Чтобы использовать лару на https домене - приходится проставлять тысячи костылей, т.к. любой Redirect или URL::to стремится отправить тебя на http
Alexander Popov
@ruelephant
Mar 11 2015 15:05 UTC
6 это серьзно, если так (не проверял https пока)
чревато двойным редиректом
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:06 UTC
7) Resource контроллеры не позволяют добавлять префиксы и постфиксы - в результате невозможно без костылей имитировать роуты на .xml или .json
Alexander Popov
@ruelephant
Mar 11 2015 15:06 UTC
https -> http и тут nginx понимает что пользователь "нелегал" и кидает его опять же на https
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:06 UTC
ну да, и оно улетает в цикл
было уже
проходили
8) Во время юнит тестирования сбрасываются все состояния системы, за исключением статиков - в результате все методы boot будут вызваны только в первом тесте, т.е. невозможно протестировать без костылей события моделей (например)
Alexander Popov
@ruelephant
Mar 11 2015 15:10 UTC
ну есть проблемы да
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:10 UTC
9) Про блейд вообще промолчу - настолько кривого шаблонизатора придумать сложно, достаточно написать @section('some')Text@stop или @section('some(any)'), чтоб понять как конкретно оно глючит. Причём совершенно непонятно почему отказались от Твига
Alexander Popov
@ruelephant
Mar 11 2015 15:12 UTC
@SerafimArts форкни :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:12 UTC
Зачем?
Alexander Popov
@ruelephant
Mar 11 2015 15:13 UTC
ну раз тейлор патчи не берет
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:13 UTC
То что я считаю Тейлора довольно плохим архитектором - не мешает мне использовать этот фрейм в продакшене
Alexander Popov
@ruelephant
Mar 11 2015 15:13 UTC
не знаю, тейлор даже книги пишет
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:13 UTC
Ну и пусть пишет, главное до проектирования его не подпускать
=)
Alexander Popov
@ruelephant
Mar 11 2015 15:14 UTC
по 29.99 :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:14 UTC
я сам не ахти какой программист\архитектор, но смотря на симфони - понимаешь насколько это охрененные ребята - вообще всё предусмотрели, что возможно.
Alexander Popov
@ruelephant
Mar 11 2015 15:15 UTC
ммм вот симфони для бизнеса не очень
слишком много инженерии
это негативно влияет на сроки разработки
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:15 UTC
лол
Alexander Popov
@ruelephant
Mar 11 2015 15:16 UTC
тут код тестами покрыт на 0 процентов, потому что дедлайн "уже на той недели"
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:16 UTC
это всегда так
Alexander Popov
@ruelephant
Mar 11 2015 15:16 UTC
а если еще и "правильно" все делать на "кашерных" инструментах, руководство застрелится
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:16 UTC
симфони для крупных проектов
по-этому у них даже платная поддержка есть
как и у зенда
Alexander Popov
@ruelephant
Mar 11 2015 15:17 UTC
это титанически сложно протолкнуть будет в корпорации
не знаю для кого она
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:17 UTC
ты ей пользуешься каждый день
лара - это тупо урезанный симфони
Alexander Popov
@ruelephant
Mar 11 2015 15:17 UTC
ну да
я вообще на Yii сидел плотно
вот тесноват стал, перехожу на лару
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:18 UTC
ну Yii это вообще...
промолчу
Alexander Popov
@ruelephant
Mar 11 2015 15:18 UTC
зато знаешь с какой скоростью интернет магазины шлепают на нем
просто как горячие пирожки
за 3 дня
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:19 UTC
на друпале тоже можно
Alexander Popov
@ruelephant
Mar 11 2015 15:19 UTC
ну нет, на друпале сложнее
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:19 UTC
предлагаю тебе познакомиться с друпалистом каким-нибудь
и сказать ему об этом
Alexander Popov
@ruelephant
Mar 11 2015 15:19 UTC
обычно маркетологи задвигают "странные" требования
и системы типо "битрикса" они идут в леса
ибо надо пол ядра перефигачить
"каждую среду у нас 10% скидка для пенсиосионеров-инвалидов, еще для них надо полностью другой дизайн подгружать"
и все хоть стреляйся
сроки традиционно "еще в том году должны были сделать"
Alexander Popov
@ruelephant
Mar 11 2015 15:26 UTC
открываешь код, а там задница. Смотрит и улыбается.
Роман Сохарев
@greabock
Mar 11 2015 15:49 UTC

Один знакомый вчера на вопрос о различиях yii и laravel ответил (дословно):

Разница втом, что уй уже состоит из кастылей, а лара разрешает сделать кастыли самому

Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:51 UTC

На хабре, кстати, был коммент по поводу лары, который меня довольно сильно позабавил:

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

Тоже дословно =)
Orel
@2byte
Mar 11 2015 15:52 UTC
Они врут?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:52 UTC
нет, почему же
Denis Isaychenko
@Rhincodon
Mar 11 2015 15:52 UTC
давайте не будем оскорблять фреймворк в чате :)
он же может обидиться
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:53 UTC
но из лары можно сбацать довольно крутую штучку
Orel
@2byte
Mar 11 2015 15:53 UTC
А нафига тогда мы костылим )
Kirill
@kirill001
Mar 11 2015 15:54 UTC
какие костыли? Вот сейчас сижу на Зенде. Он намного запутаннее Ларавела. Плюсов от его запутанности я не вижу, все то же самое можно было сделать на ларавеле в 10 раз проще и лучше
Роман Сохарев
@greabock
Mar 11 2015 15:54 UTC
@SerafimArts а мне вот кажется, что как раз кишки аккуратно спрятаны )
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:55 UTC
ну не скажи
взять хотя бы Request\Response
считай напрямую симфони хттп кернел пользуешься
Denis Isaychenko
@Rhincodon
Mar 11 2015 15:57 UTC
а как же преобразование в json тех же моделей в response автоматом например, симфони налил чай, laravel добавил сахара :)
да, некоторые не любят чай с сахаром, но винить сахарницу за это нельзя )
она же не насильно сахар насыпает, хочешь просто чай, бери чай
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:58 UTC
ну там ровно три строчки для этого
Denis Isaychenko
@Rhincodon
Mar 11 2015 15:59 UTC
зато какие вкусные )
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:59 UTC
не скажи
Denis Isaychenko
@Rhincodon
Mar 11 2015 15:59 UTC
ну и не три
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:59 UTC
три
Alexander Popov
@ruelephant
Mar 11 2015 15:59 UTC
три не три, но лучше не станет :)
Denis Isaychenko
@Rhincodon
Mar 11 2015 16:00 UTC
метод morphToJson уже 5 строк занимает, а он вызывается из условия в котором в сумме 5 строк тоже с ним, так что не 3
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:00 UTC
if (is_array($response)) {
  return (new HttpResponse(json_encode($response)))->setContentType('application/json');
}
хорошо, я бы осилил это в 3 строчки
а там в 5
:D
Роман Сохарев
@greabock
Mar 11 2015 16:00 UTC
@SerafimArts врешь же ) в ларе так не пишут )
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:00 UTC
хз, я так пишу
Denis Isaychenko
@Rhincodon
Mar 11 2015 16:01 UTC
        if ($this->shouldBeJson($content))
        {
            $this->headers->set('Content-Type', 'application/json');

            $content = $this->morphToJson($content);
        }
даже не так, метод же ещё shouldBeJson
Alexander Popov
@ruelephant
Mar 11 2015 16:01 UTC
хм не знал про него
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:05 UTC
Более того - у меня в коде есть совершенно невероятные конструкции
например обыкновенный контроллер: https://github.com/jphp-compiler/site/blob/master/app/controllers/DocsController.php или совершенно обыкновенная модель https://github.com/jphp-compiler/site/blob/master/app/models/Document.php
:D
без поллитры не осилить +)
Alexander Popov
@ruelephant
Mar 11 2015 16:10 UTC
да примитив же
а что там осиливать?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:11 UTC
в модельке или контроллере?
Alexander Popov
@ruelephant
Mar 11 2015 16:11 UTC
простая
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:11 UTC
если не учитывать контрактное программирование
то да, простая
но для меня лично работа на аннотациях - пока ещё в новинку
или это я только один такой слоупок все подписки начал разруливать ими, а остальные уже 100 лет юзают? :'(
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:14 UTC
@SerafimArts ты о чем?
о чудо-аннотация?
* @Model(
* table="documents",
* mapping=@DocumentMap,
* hidden={"id", "created_at", "updated_at", "content"},
* guarded={"id", "created_at", "updated_at", "content", "url", "uuid"}
* )
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:14 UTC
это только для элоквента
ага
ну и плюс моя доработка - маппинги, для строгой типизации моделей
Alexander Popov
@ruelephant
Mar 11 2015 16:15 UTC
за анотации я бы убивал
ржавой секирой
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:16 UTC
@SerafimArts а где валяется маппинг?
Alexander Popov
@ruelephant
Mar 11 2015 16:16 UTC
это называется ЛЕНЬ
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:16 UTC
там же сверху use
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:16 UTC
ага
для каждой модели свой маппинг?
как оно кстати с автокомплитом дружит?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:17 UTC
я это делал только для того, чтоб объединить метод create и edit в одном
т.е. во время create генерируется модель с пустыми данные

как оно кстати с автокомплитом дружит?

точно так же как обычный код

Brezhnev Ivan
@vanchelo
Mar 11 2015 16:18 UTC
на самом деле выглядит очень читабельно
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:18 UTC
фишка в том, что они схлопываются в шторме и не мешаются
да и написать, например @Compose({"layout.*"}) перед классом вью-композера удобнее, нежели пихать всё в глобал.пых

з.ы.

как оно кстати с автокомплитом дружит?

http://docs.rudev.org/d/04d3584e32c82b118cd0035f91c99511

Brezhnev Ivan
@vanchelo
Mar 11 2015 16:23 UTC
норм
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:24 UTC
ну и весь автокомплит и прочее
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:25 UTC
ты под Idea рабоатешь?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:26 UTC
на работе шторм, дома идея
сейчас я на работе, среда как бы
=)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:27 UTC
явавские либы юзаешь?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:27 UTC
неа
дома только развлекаюсь
я не понимаю к чему ты клонишь
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:27 UTC
просто интересусь)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:28 UTC
аннотации почти что нативно пыхом поддерживаются, если что
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:29 UTC
это хорошо
лара на jphp заведется?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:29 UTC
нет
у Jphp своё апи
там разве штук 10 функций из оригинала
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:30 UTC
выходит только если переписать
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:31 UTC
перенести можно, да
например
function str_replace($a, $b, $c) {
  return php\lib\str::replace($c, $a, $b);
}
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:32 UTC
ага, это оно)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:33 UTC
что "оно"? о_0
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:35 UTC
оно, в том смысле что файлик накидать с функциями
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:35 UTC
ты видел сколько там всего функций?
это адовый ад
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:36 UTC
надо составить список тех что юзаются в ларке
хотя бы
без дополнительных библиотек
парсером каким-нить пройтись
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:37 UTC
ну есть прикол, я уговорил Диму заморозить стдлиб и подумать над небольшим его переделыванием
например заменить класс php\lib\str на Lib\String
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:38 UTC
ага, человечнее
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:38 UTC
единственная проблема пока что - это кейворд array
jphp-compiler/jphp#172
если от него избавиться как-нибудь - наступит счастье
а избавиться нельзя, т.к. всякие среды разработки начнут глючить
а переписать их нельзя, т.к. код закрытый, например у шторма
а попросить их (разрабов иде) добавить как альтернативный язык - невозможно
единственный вариант - переписать весь плагин php с нуля
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:40 UTC
гы
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:40 UTC
вот таким образом уважаемые JB тормозят развитие языков
:D
Alexander Popov
@ruelephant
Mar 11 2015 16:41 UTC
костыль не заработал :(
Route::group(['prefix' => 'api/v{version}'], function($version)
{
    Route::any(
               '{controller}/{arguments?}',
               function($version, $controller) {
                    $controller_name = ucwords($controller).'Controller';
                    Route::resource($controller, $controller_name);
               }
    );
});
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:42 UTC
а почему ты решил что заработает?
Alexander Popov
@ruelephant
Mar 11 2015 16:42 UTC
ну там один чувак делал такое :)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:42 UTC
хм
лара роут ведь уже отыскала
Alexander Popov
@ruelephant
Mar 11 2015 16:43 UTC
правда у него тоже не заработало :)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:43 UTC
зачем ей второй раз в них смотреть
Alexander Popov
@ruelephant
Mar 11 2015 16:43 UTC
@vanchelo я мучаюсь с этим Route::resource, он хочет контролер
а мне надо там выбор сделать контролеров, а не на конкретный посылать
копипастить роуты не вариант
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:43 UTC
форычем
Alexander Popov
@ruelephant
Mar 11 2015 16:44 UTC
ну это не ах решение
сам понимаешь
куча роутов плодить всеравно
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:44 UTC
то что ты выше написал совсем не АХ)
оно даже логически не должно работать
Alexander Popov
@ruelephant
Mar 11 2015 16:44 UTC
есть вариант сделать "проксирующий" контролер, который уже из методов вызвает нужный
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:44 UTC
+1
Alexander Popov
@ruelephant
Mar 11 2015 16:45 UTC
но там тоже есть загвозка
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:45 UTC
app($controllerName)->call($action)
Alexander Popov
@ruelephant
Mar 11 2015 16:45 UTC
@vanchelo дада, только он контролером не будет являтся :)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:45 UTC
а чем?
Alexander Popov
@ruelephant
Mar 11 2015 16:45 UTC
и такой проксирующий код надо получается во все методы restfull
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:45 UTC
замыкание?
Alexander Popov
@ruelephant
Mar 11 2015 16:46 UTC
толку то? всеравно как то меня коробит с проксирующим контролером
это пахнет костылем, потому что Route::resource не поддерживает то что надо
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:47 UTC
не, ты написал что он контроллером не является
а чем же тогда?
Alexander Popov
@ruelephant
Mar 11 2015 16:47 UTC
ну он не вызывается "из движка" поэтому он не совсем контролер
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:47 UTC
бред
что такое контроллер, расскажи?
т.е. что ты имеешь ввиду
Alexander Popov
@ruelephant
Mar 11 2015 16:48 UTC
грубо говоря не так
я не уверен что вызов "app($controllerName)->call($action)" === вызову из Route::resource движком
там обычно особая магия применяется, для вызовов контролера (в Yii там третья вода не киселе)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:49 UTC
Route::resource это просто создание кучи роутов
Alexander Popov
@ruelephant
Mar 11 2015 16:49 UTC
чтонибудь не проинициализируюешь и приехали
это понятно, я имею введу механизм роута когда нашел матч, как он контролер зовет
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:49 UTC
Route::resource никакие контроллеры не вызывает
Alexander Popov
@ruelephant
Mar 11 2015 16:50 UTC
ДА ЭТО ПОНЯТНО
я специально обстрагировался, что бы не лезть в дебри
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:50 UTC
открой исходники и посмотри как контроллеры дергаются
Alexander Popov
@ruelephant
Mar 11 2015 16:50 UTC
это обертка над стандартным роутами
в другом месте наверное
там коллекция собирается, а где сам вызов хз
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:51 UTC
зачем Route::resource?
Alexander Popov
@ruelephant
Mar 11 2015 16:52 UTC
это restfull обертка
что бы руками не делать
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:52 UTC
я знаю) спрашивал в контексте @ruelephant'a)
Alexander Popov
@ruelephant
Mar 11 2015 16:53 UTC
у меня API сервиса, пытаюсь обеспечить версионность
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:53 UTC
А оно тебе сейчас надо?
Не проще ли пока что забить
?
Alexander Popov
@ruelephant
Mar 11 2015 16:54 UTC
нет
для хомяка я бы забил, но тут компоративный рабочий проект
это есть в требованиях
попробую конечно проксирующий сделать
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:55 UTC
стой, а что мешает сохранять версию в сессии?
Alexander Popov
@ruelephant
Mar 11 2015 16:56 UTC
там нет сессий
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:56 UTC
где нет?
Alexander Popov
@ruelephant
Mar 11 2015 16:56 UTC
нет кук, каждый вызов он атомарный
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:56 UTC
о_0
Alexander Popov
@ruelephant
Mar 11 2015 16:56 UTC
это не для браузера интерфейс
хоть и по http
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:57 UTC
Ну сделай класс с версиями
Alexander Popov
@ruelephant
Mar 11 2015 16:57 UTC
за использование кук, меня на-той-стороне расстреляют
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:57 UTC
и туда сохраняй текущую
Alexander Popov
@ruelephant
Mar 11 2015 16:57 UTC
да ты не понял, номер версии есть в URL
проблема развести грамотно классы
учитывая что в Route::resource держит только фиксовый класс
а копипастом заниматся не охото
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:58 UTC
App::before(function(){
  If (Input::get('version')) {
    if (Input::get('version') === '1') { VersionRegistry::create(new ApiV1); }
  }
});
Alexander Popov
@ruelephant
Mar 11 2015 16:58 UTC
а в VersionRegistry::create что?
вы решаете не ту задачу
ладно домой приду опишу подробнее
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:59 UTC
class VersionRegistry
{
    protected static $v;
    public static create(VerisonApiInterface $api) 
    {
        static::$v = $api;
    }
}
+static function get
ну или app()['api.interface'] = new ApiV2
или какой там апи у app
LaravelButler

Приветствуем Вас, @ChristopherFuller, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Denis Isaychenko
@Rhincodon
Mar 11 2015 17:16 UTC
хм, lifetime подписка на laracasts 249$ , то есть нужно быть точно увереным что ты выживешь минимум в течении 2-х лет, и эти 2 года будешь использоваль laravel :)
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:17 UTC
Всем привет!
Ребята, вы еще помогаете с ларой 4.2 или уже только 5?:)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:18 UTC
только православный 4.2!
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:24 UTC

))) помогите пожалуйста, совсем запутался с eloquent...
Есть 2 таблицы - категория и продукт, связь many-to-many через пивотную таблицу.
Через роут в контроллер я передаю слаг категории и хочу вывести товары этой категории с разбивкой по страницам, ну например 10 товаров на страницу.
Вопрос - как это сделать оптимальным образом?
Через активную загрузку получается что-то вроде:

$feed=Category::with('products')->whereSlug($slug)->get();

но это выводит категорию со всеми товарами.
Как быть?

простите, с синтаксисом в этом чате пока не алё)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:26 UTC
->take(количество_элементов), ->skip(сколько_пропустить)
?
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:27 UTC
так по идее это будет для Category. Товары в данном примере "вложены" в категорию
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:29 UTC
хм
там было что-то такое
ща
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:29 UTC
ну то есть если я сделаю take, это сработает для первой выборки же, с категориями, а не для второй с товарами
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:32 UTC
о!
->with(['products' => function($query) {
    $query->take(10)->skip(0);
})
->...
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:36 UTC
о! спасибо! только... а как в таком случае передать номер, просто вторым аргументом функции?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:36 UTC
с помощью use
Это же обычные лямбды
=)
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:38 UTC
огоспади, туплю)))) спасибо огромное!!!
Annywebart
@Annywebart
Mar 11 2015 18:11 UTC
Всем привет! Подскажите, пожалуйста, можно ли с помощью Eloquent выполнить такой запрос?
SELECT * FROM
        (select * from `messages` WHERE user_id_sender = 2 OR user_id_recipient = 2 ORDER BY `created_at` DESC) t
        GROUP BY user_id_sender, user_id_recipient ORDER BY `created_at` DESC
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:12 UTC
нет, только с помощью квери билдера
но т.к. элоквент проксирует на билдер - можно
хотя...
а нафига такой запрос-то?
не проще ли вот так?
Message::query()
->whereNested(function($q) { 
    $q->where('user_id_sender', 2)
        ->orWhere('user_id_recipient', 2); 
})
->where('user_id_sender', '<>', 'user_id_sender')
->orderBy('created_at', 'desc');
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:18 UTC
т.е. это вот такой запрос получится select * from messages where (user_id_sender = 2 or user_id_recipient = 2) and user_id_sender <> user_id_recipient order by created_at desc
извини за плохой стиль sql
censoredgit
@censoredgit
Mar 11 2015 18:27 UTC

@ruelephant

Route::group(['prefix' => 'api'], function() {
       $v = Request::get('v', getenv('API_VERSION'));
       Route::resource("welcome","V{$v}\\WelcomeController");
});

API_VERSION=2 #.env
/api/welcome?v=2, /api/welcome?v=1, /api/welcome
img

Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:28 UTC
почему апи должно быть контроллером?
почему не отдельным классом
апи - это вообще модель скорее
с другой стороны апи поверх хттп, т.е. должен быть доступ к роутам...
хм
Господа лараведы и ларапеды
расскажите пожалуйста, почему может не работать beforeFilter в контроллере
LaravelButler

Приветствуем Вас, @volt2000, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

volt2000
@volt2000
Mar 11 2015 18:32 UTC
Ребята прошу помочь при запуске HL2RP Вылезает эта ошибка помогите пж [ERROR] gamemodes/nutscript/gamemode/core/derma/cl_intro.lua:48: attempt to concatenate field 'author' (a nil value)
  1. OnEnd - gamemodes/nutscript/gamemode/core/derma/cl_intro.lua:48
    1. unknown - lua/includes/extensions/client/panel/animation.lua:48
censoredgit
@censoredgit
Mar 11 2015 18:32 UTC
мне еще не приходилось писать api) контроллер будет разруливать права доступа и т.п.
Annywebart
@Annywebart
Mar 11 2015 18:33 UTC
@SerafimArts Спасибо, сейчас попробую
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:33 UTC
сек, скрины накидаю
volt2000
@volt2000
Mar 11 2015 18:34 UTC
Ребята прошу помочь при запуске HL2RP Вылезает эта ошибка помогите пж [ERROR] gamemodes/nutscript/gamemode/core/derma/cl_intro.lua:48: attempt to concatenate field 'author' (a nil value)
  1. OnEnd - gamemodes/nutscript/gamemode/core/derma/cl_intro.lua:48
    1. unknown - lua/includes/extensions/client/panel/animation.lua:48
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:34 UTC
о
а я понял походу
slider23
@slider23
Mar 11 2015 18:35 UTC
Это канал про аниме ?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:35 UTC
я вызываю другой метод контроллера
О да, заработало =)
volt2000
@volt2000
Mar 11 2015 18:36 UTC
Ну ребят помогит с ошибкой [ERROR] gamemodes/nutscript/gamemode/core/derma/cl_intro.lua:48: attempt to concatenate field 'author' (a nil value)
OnEnd - gamemodes/nutscript/gamemode/core/derma/cl_intro.lua:48
unknown - lua/includes/extensions/client/panel/animation.lua:48
censoredgit
@censoredgit
Mar 11 2015 18:37 UTC
@volt2000 HL2RP это сборка half-life 2 ?
Denis Isaychenko
@Rhincodon
Mar 11 2015 18:37 UTC
на laracasts тоже начался срач о репозиториях и зачем их применять :) https://laracasts.com/discuss/channels/general-discussion/scopes-vs-repository
slider23
@slider23
Mar 11 2015 18:38 UTC
@volt2000 Ты уверен, что туда куда надо пишешь ?
volt2000
@volt2000
Mar 11 2015 18:38 UTC
@slider23 Ну просто думал тут хоть помогут
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:38 UTC
@slider23 ты что, не знаешь луашечку?!
как ты можешь
это же модно, молодёжно =)
volt2000
@volt2000
Mar 11 2015 18:39 UTC
@censoredgit Я скачал НатСкрипт и НС ХЛ2РП поставил все и при запуске эта херь
slider23
@slider23
Mar 11 2015 18:40 UTC
@volt2000 на чем основывалось твоё предположение, что в чате по php-фреймворку помогут с этим вопросом ?
ArtMik
@ArtMik
Mar 11 2015 18:45 UTC
Доброго времени суток! Через composer создал проект на локалке. Сделал сайт. Перенес на хостинг бегет (http://studcamp.ru) и мне выдает ошибку. В чем проблема? Пробовал перезалить и обновить композер на локалке после чего опять же перезалить. На локалке точно такая же версия и все работает. На хосте - нет.
Что делать?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:45 UTC
рекомендую исправить ошибку
скорее всего это поможет ;)
ой
ArtMik
@ArtMik
Mar 11 2015 18:46 UTC
Ты гений. Но в этом то и проблема. Я не знаю как исправить.
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:46 UTC
не заметил ссылку
=)
ArtMik
@ArtMik
Mar 11 2015 18:47 UTC
Там ругается на связи. А на локалке все хорошо.
JhaoDa
@jhaoda
Mar 11 2015 18:48 UTC
@ArtMik мы должны ошибку угадать?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:48 UTC
там есть ссылка
censoredgit
@censoredgit
Mar 11 2015 18:48 UTC
@ArtMik откл ошибки в пхп.ини
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:48 UTC
лол
скорее наоборот
включить на локалке
и исправить проблемы
а потом уже в прод
=)
JhaoDa
@jhaoda
Mar 11 2015 18:49 UTC
Пх, я думал, это бегет домен сменил...
censoredgit
@censoredgit
Mar 11 2015 18:49 UTC
=)
ArtMik
@ArtMik
Mar 11 2015 18:49 UTC
ПОдождите. На локалке все отлично работает. Так как надо.
А на хосте ошибку пишет.
СП перевели мне ошибку на русский и игнорят теперь.
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:50 UTC
с error_reporting(E_ALL);?
slider23
@slider23
Mar 11 2015 18:50 UTC
опыт телепатии подсказывает мне, что ты залогинен на локалке, и разрабатываешь залогиненным. И в шаблоне юзаешь Auth::user()->something . А на хостинге ты разлогинен и получаешь вот эту ошибку, что, мол, берёшь ->something у null
Разлогинься на локалке и получишь ту же ошибку
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:52 UTC
@slider23 а ты не думаешь, что на локалке просто отключены ошибки?
ArtMik
@ArtMik
Mar 11 2015 18:52 UTC
Разлогинился. Все норм.

с error_reporting(E_ALL);?

да вроде все норм

Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:53 UTC
хм
ArtMik
@ArtMik
Mar 11 2015 18:53 UTC
Выдает -1
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:54 UTC
что выдаёт и где?
slider23
@slider23
Mar 11 2015 18:54 UTC
Ну тогда смотри свой showTestsList.blade.php , объекты, у которых ты берешь значения аттрибутов - почему там не может быть собственно объектов.
ArtMik
@ArtMik
Mar 11 2015 18:54 UTC
<?php echo $test->tag->name; ?>
вот тут ругается
Test - это моделька
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:54 UTC
dd($test->tag) например
ArtMik
@ArtMik
Mar 11 2015 18:54 UTC
public function tag()
{
return $this->hasOne('Categorie', 'id');
}
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:55 UTC
вангую там null
всё, я убёг домой, всем бб
ArtMik
@ArtMik
Mar 11 2015 18:56 UTC
Нет, там не null
object(Categorie)#225 (20) { ["table":protected]=> string(10) "categories" ["connection":protected]=> NULL ["primaryKey":protected]=> string(2) "id" ["perPage":protected]=> int(15) ["incrementing"]=> bool(true) ["timestamps"]=> bool(true) ["attributes":protected]=> array(5) { ["id"]=> int(4) ["name"]=> string(51) "Скачать карты для Майнкрафт" ["user_id"]=> int(1) ["created_at"]=> string(19) "2015-02-28 13:02:16" ["updated_at"]=> string(19) "2015-02-28 13:02:16" } ["original":protected]=> array(5) { ["id"]=> int(4) ["name"]=> string(51) "Скачать карты для Майнкрафт" ["user_id"]=> int(1) ["created_at"]=> string(19) "2015-02-28 13:02:16" ["updated_at"]=> string(19) "2015-02-28 13:02:16" } ["relations":protected]=> array(0) { } ["hidden":protected]=> array(0) { } ["visible":protected]=> array(0) { } ["appends":protected]=> array(0) { } ["fillable":protected]=> array(0) { } ["guarded":protected]=> array(1) { [0]=> string(1) "*" } ["dates":protected]=> array(0) { } ["touches":protected]=> array(0) { } ["observables":protected]=> array(0) { } ["with":protected]=> array(0) { } ["morphClass":protected]=> NULL ["exists"]=> bool(true) }
Ну вот. Там есть поле name
JhaoDa
@jhaoda
Mar 11 2015 18:58 UTC
@ArtMik чисто для порядка: не Categorie, а Category
censoredgit
@censoredgit
Mar 11 2015 18:58 UTC
@ArtMik ты на локалке смотришь или на серваке?
JhaoDa
@jhaoda
Mar 11 2015 18:59 UTC
This message was deleted
ArtMik
@ArtMik
Mar 11 2015 19:00 UTC
чисто для порядка: не Categorie, а Category
знаю, лень попроавить
на сервере:
object(Categorie)#227 (20) { ["table":protected]=> string(10) "categories" ["connection":protected]=> NULL ["primaryKey":protected]=> string(2) "id" ["perPage":protected]=> int(15) ["incrementing"]=> bool(true) ["timestamps"]=> bool(true) ["attributes":protected]=> array(5) { ["id"]=> int(2) ["name"]=> string(14) "Алгебра" ["user_id"]=> int(1) ["created_at"]=> string(19) "2015-02-15 12:29:37" ["updated_at"]=> string(19) "2015-02-15 12:29:37" } ["original":protected]=> array(5) { ["id"]=> int(2) ["name"]=> string(14) "Алгебра" ["user_id"]=> int(1) ["created_at"]=> string(19) "2015-02-15 12:29:37" ["updated_at"]=> string(19) "2015-02-15 12:29:37" } ["relations":protected]=> array(0) { } ["hidden":protected]=> array(0) { } ["visible":protected]=> array(0) { } ["appends":protected]=> array(0) { } ["fillable":protected]=> array(0) { } ["guarded":protected]=> array(1) { [0]=> string(1) "*" } ["dates":protected]=> array(0) { } ["touches":protected]=> array(0) { } ["observables":protected]=> array(0) { } ["with":protected]=> array(0) { } ["morphClass":protected]=> NULL ["exists"]=> bool(true) }
Чет я понять не могу
JhaoDa
@jhaoda
Mar 11 2015 19:02 UTC
@ArtMik тебя попросили сделать dd($test->tag), а ты сделал dd($test)
JhaoDa
@jhaoda
Mar 11 2015 19:03 UTC
@ArtMik ну в дампе видно же object(Categorie)
У тебя тэги в таблице категорий? Точно
ArtMik
@ArtMik
Mar 11 2015 19:04 UTC
Да.
JhaoDa
@jhaoda
Mar 11 2015 19:04 UTC
Зачот... ну а чо, действительно, можно вообще в одной таблице хранить всё...
ArtMik
@ArtMik
Mar 11 2015 19:05 UTC
лол
Но тем не менее
Дак и на локалке
["relations":protected]=> array(0) { }
JhaoDa
@jhaoda
Mar 11 2015 19:07 UTC
Ну тогда это гейзен-баг и ждём элефантуса, он хвалится телепатическими способностями
Правда, только хвалится...
ArtMik
@ArtMik
Mar 11 2015 19:08 UTC
Блин. Все довольно плохо.
["relations":protected]=> array(0) { } а вот тут, как я понял, должен быть не пустой массив?
JhaoDa
@jhaoda
Mar 11 2015 19:10 UTC
@ArtMik ну ты видишь, что я сообщение уже удалил?:)
Значит, можно расслабиться
ArtMik
@ArtMik
Mar 11 2015 19:11 UTC
Оу, я не заметил. Прочитал и все.

Зачот... ну а чо, действительно, можно вообще в одной таблице хранить всё...

На самом деле там категории. Я хз под чем был, когда писали, что это теги.

JhaoDa
@jhaoda
Mar 11 2015 19:12 UTC
Ну тогда не удивительно, что ошибки непонятные лезут :)
LaravelButler

Приветствуем Вас, @kimihub, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

ArtMik
@ArtMik
Mar 11 2015 19:20 UTC
Черт
{{ $test->tag['name'] }}
какого так работает?!
JhaoDa
@jhaoda
Mar 11 2015 19:23 UTC
This message was deleted
This message was deleted
ArtMik
@ArtMik
Mar 11 2015 19:24 UTC
$data = Test::all();
return View::make('tests.showTestsList', array('data' => $data));
хз
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:43 UTC
@Rhincodon смотрю тут срач не поддержали по поводу репо/не репо
неужели все так сильно уверены что без репо лучше?
Denis Isaychenko
@Rhincodon
Mar 11 2015 19:44 UTC
@condoriano угу, поэтому я перевожу http://culttt.com/2014/09/08/benefits-using-repositories :) нам нужен срач :)
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:44 UTC
я хочу срача
то есть дискуссии
потомущо репо избыточны очень часто
то есть лишние, overkill так скть, как и говорят там по твоей линке )
JhaoDa
@jhaoda
Mar 11 2015 19:45 UTC
Я не понимаю, о чем срач-то? Кто хочет, тот юзает репы. Кто не хочет, не юзает
Понимание приходит с опытом
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:46 UTC
отлично, вот так всегда прийдет кто-то и скажет - на вкус и цвет
Denis Isaychenko
@Rhincodon
Mar 11 2015 19:46 UTC
никто и не спорит что избыточны очень часто, но и отрицать профиты их использования нельзя, как мол фу фу, зачем вы их используете :)
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:46 UTC
и всё, срач заканчивается так и не начавшись :(
JhaoDa
@jhaoda
Mar 11 2015 19:46 UTC
@condoriano люди язык не знают, а ты за репы срач хочешь
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:47 UTC
а, это да ( это грустнячек
меня больше вот интересуют другие вопросы про репо, а именно зависимости, или скоре взаимодействие
часто путает меня такой вопрос - куда лучше поместить создание объекта, или связь объектов
или передавать int id, или же объект целый..
самое интересно что мало туторов которые показывают реальные сложности жизненные, всем бложик сделать или какой-то аналог фейсбука минимальный
хоть бери и сам пиши тутор какой-то
JhaoDa
@jhaoda
Mar 11 2015 19:50 UTC
Я поместил создание и обновление в репу. Сделал, что передавать можно и модель, и id
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:50 UTC
и то правда, никто же не ограничивает одиним типом..
JhaoDa
@jhaoda
Mar 11 2015 19:50 UTC
Там же связи, типа добавление аккаунтов соцсетей к юзеру
Может это и не труЪ... хотя как труЪ — мнения расходятся.
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:51 UTC
ну вот да, куда лучше поместить $userRepo->createFriendship, или $friendsRepo->createSymbiosis или вообще в модели $user->makeAFriend()
JhaoDa
@jhaoda
Mar 11 2015 19:52 UTC
@condoriano в репу, такое мой мнение
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:53 UTC
интересненько.
JhaoDa
@jhaoda
Mar 11 2015 19:57 UTC
Т.е. в моделях должно быть минимум бизнес-логики
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:57 UTC
собсно тоже так считаю, удобнее всякие там кеши делать и тд
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 19:58 UTC
вы говорите меньше бизнес-логики в моделях, но всё ещё не используете аннотации?
мухоха, грешники!
JhaoDa
@jhaoda
Mar 11 2015 19:59 UTC
Не надо нас за советскую власть агитировать
Vladislav Maksimchuk
@condoriano
Mar 11 2015 19:59 UTC
а тут разве не банят за это слово?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:00 UTC
за "грешников"?
JhaoDa
@jhaoda
Mar 11 2015 20:00 UTC
Вообще, очень печально, что люди мыслят догмами, в любой сфере
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:01 UTC
это называется не догмы, а "один раз попробовать" =)
JhaoDa
@jhaoda
Mar 11 2015 20:01 UTC
Мне вот аннотации воспринимать сложно
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:01 UTC
а что там сложного?
JhaoDa
@jhaoda
Mar 11 2015 20:01 UTC
@SerafimArts с чего ты решил. что мы не пробовали?
Бесполезный разговор...
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:02 UTC
подсветка есть, тайпхинтинг есть, статик. анализ есть
конкретно что с ними не так?
JhaoDa
@jhaoda
Mar 11 2015 20:02 UTC
Я ответил очень конкретно — я их плохо воспринимаю
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:02 UTC
это не конкретно
JhaoDa
@jhaoda
Mar 11 2015 20:02 UTC
Ты в курсе, надеюсь, что есть аудиалы, визуалы и прочее?
Вот так и тут
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:03 UTC
это "мне не нравятся, допустим руби, потому что я их не воспринимаю"
JhaoDa
@jhaoda
Mar 11 2015 20:03 UTC
Я же сказал — бесполезный разговор
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:03 UTC
хорошо, получается ты просто не привык, верно?
т.к. подсветка есть
что исключает визуальную составляющую
JhaoDa
@jhaoda
Mar 11 2015 20:03 UTC
Как объяснить фанатику, что я не фанатик?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:04 UTC
так и сказать
но ты отвечаешь "мне не нравится ООП, потому что я его не воспринимаю"
ну примерно так же
на вопрос что конкретно не воспринимается - ты отвечаешь "всё это пустое" и "я уже ответил"
JhaoDa
@jhaoda
Mar 11 2015 20:05 UTC
@SerafimArts ты утомляешь
Почем я вообще должен тебе что-то доказывать?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:06 UTC
не должен, мне интересны твои доводы, а не голословные фразы
JhaoDa
@jhaoda
Mar 11 2015 20:06 UTC
Я не воспринимаю аннотации, такое у меня умственное отклонение. Так лучше?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:06 UTC
с тобой невозможно разговаривать =)
JhaoDa
@jhaoda
Mar 11 2015 20:06 UTC
Да, печально жить таким
Пойду выпью
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:07 UTC
мдэ...
JhaoDa
@jhaoda
Mar 11 2015 20:13 UTC
Даже йад кончился...
slider23
@slider23
Mar 11 2015 20:42 UTC
C созданием статей на .su все оказалось хуже, чем я предполагал. Откладываю дедлайн еще на сутки :)
Brezhnev Ivan
@vanchelo
Mar 11 2015 20:43 UTC
@slider23 в чем проблема?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:43 UTC
=(
slider23
@slider23
Mar 11 2015 20:43 UTC
Также есть много непечатного в адрес идеи юзать innodb foregin keys, но промолчу.
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:43 UTC
лучше выскажись
думаю ты, как модератор, сможешь простить сам себя за подобные изречения
slider23
@slider23
Mar 11 2015 20:44 UTC
но вей. просто но вей. усечь смердячую яцутку, как сказал поэт
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:44 UTC
но лично мне интересно с чем ты столкнкулся
Brezhnev Ivan
@vanchelo
Mar 11 2015 20:44 UTC
)))
slider23
@slider23
Mar 11 2015 20:45 UTC
я вроде читаю мануалы по php-mysql. Кто и когда вбросил эту странную идею юзать эту фичу innodb и почему этому человеку все поверили ? И как это прошло мимо меня ?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:46 UTC
так, давай с самого начала
не томи
у меня уже шило начало ржаветь в непотребном месте
slider23
@slider23
Mar 11 2015 20:46 UTC
да на самом деле я просто нагнетаю и не умею этим пользоваться
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:47 UTC
:D
slider23
@slider23
Mar 11 2015 20:47 UTC
я спать пошёл :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 20:47 UTC
ох лол
приятных снов!
Brezhnev Ivan
@vanchelo
Mar 11 2015 20:48 UTC
хорошо что всё закончилось лишь сном)
LaravelButler

Приветствуем Вас, @kaganpwnz, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Brezhnev Ivan
@vanchelo
Mar 11 2015 21:08 UTC
че-то убавилось народу
Роман Сохарев
@greabock
Mar 11 2015 21:08 UTC
у меня тоже "дедлайн" откладывается
но фк тут не причем, я просто ленивый )
Brezhnev Ivan
@vanchelo
Mar 11 2015 21:09 UTC
как медведь?
Роман Сохарев
@greabock
Mar 11 2015 21:10 UTC
не, медведь все лето трудится, чтоб всю зиму отдыхать. Я просто ленивый )
Brezhnev Ivan
@vanchelo
Mar 11 2015 21:11 UTC
медведь красавчик)
даже бегать быстро умеет
Denis Isaychenko
@Rhincodon
Mar 11 2015 21:39 UTC
https://gist.github.com/Rhincodon/f7766698d40028268dc5 и ещё о репозиториях, как говорится в догонку :)
Роман Сохарев
@greabock
Mar 11 2015 21:41 UTC
@Rhincodon :+1:
ты что-то конкретно по репам упоролся )
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 21:43 UTC
он брат мой сводный (по линии упоротости), только я по аннотациям больше
:D
Роман Сохарев
@greabock
Mar 11 2015 21:46 UTC
@SerafimArts подготовь материал, я бы с удовольствием почитал о твоем взгляде на их использование.
Brezhnev Ivan
@vanchelo
Mar 11 2015 21:47 UTC
)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 21:47 UTC
как правильно их использовать или как мне нравится? Это разные вещи просто =)
Brezhnev Ivan
@vanchelo
Mar 11 2015 21:47 UTC
как мне нравится их правильно использовать)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 21:48 UTC
в реальности - это просто интерфейсы, в моём виде - они содержат реализацию
Роман Сохарев
@greabock
Mar 11 2015 21:50 UTC
@SerafimArts в первой части можно рассказать о том, как ими можно вообще пользоваться. Во второй - как ты применяешь это на практике.
Brezhnev Ivan
@vanchelo
Mar 11 2015 21:54 UTC
@Rhincodon опечатка
Denis Isaychenko
@Rhincodon
Mar 11 2015 21:54 UTC
@vanchelo где?
Brezhnev Ivan
@vanchelo
Mar 11 2015 21:54 UTC
return $this->user->username === $username; должно быть
return $user->username === $username;
function ($user) use ($username) {
в теле этого замыкания
можно даже так написать function (User $user) use ($username) {
Роман Сохарев
@greabock
Mar 11 2015 21:55 UTC

ОЧЕПЯТКО !!!

Brezhnev Ivan
@vanchelo
Mar 11 2015 21:55 UTC
чтобы автокомплит работал)
и отступы бы поправить)
Роман Сохарев
@greabock
Mar 11 2015 22:00 UTC
@vanchelo я думаю, это больше к автору оригинала претензии )) Но поправить стоит
Brezhnev Ivan
@vanchelo
Mar 11 2015 22:00 UTC
многие копипастят
лучше статьи писать в репе
там можно пуши присылать
а выглядят они так же
Роман Сохарев
@greabock
Mar 11 2015 22:00 UTC
=))
Brezhnev Ivan
@vanchelo
Mar 11 2015 22:01 UTC
и в папочки можно оформить
удобнее каталогизировать
Роман Сохарев
@greabock
Mar 11 2015 22:01 UTC
Я так и хотел одно время делать. И уже не помню почему на гист начал писать.
А потом как-то повелось
Brezhnev Ivan
@vanchelo
Mar 11 2015 22:02 UTC
потому что :point_up: 11 марта 2015 г., 23:08
Роман Сохарев
@greabock
Mar 11 2015 22:02 UTC
=)
Brezhnev Ivan
@vanchelo
Mar 11 2015 22:12 UTC
@greabock не смотрел https://github.com/lisachenko/go-aop-php ?
Denis Isaychenko
@Rhincodon
Mar 11 2015 22:13 UTC
@vanchelo поправил, спасибо :)
Brezhnev Ivan
@vanchelo
Mar 11 2015 22:14 UTC
теперь гуд!
Denis Isaychenko
@Rhincodon
Mar 11 2015 22:15 UTC
надеюсь в статьях на laravel.su будет удобная категоризация и теги, а то в gists это всё очень скоро потеряется
Роман Сохарев
@greabock
Mar 11 2015 22:17 UTC
@vanchelo нормальный такой костыль ))
осталось придумать как его срастить с ларой )
Brezhnev Ivan
@vanchelo
Mar 11 2015 22:19 UTC
Путём моделирования взаимодействия с базой данных, как с коллекцией, мы отдаляемся от приложений, в центре которых стоит база данных, с который мы работаем так долго.
который мы работаем так долго
Denis Isaychenko
@Rhincodon
Mar 11 2015 22:19 UTC
ага
ща
Роман Сохарев
@greabock
Mar 11 2015 22:20 UTC
@vanchelo интересно, автор общительный? Я бы хотел с ним перетереть )
Denis Isaychenko
@Rhincodon
Mar 11 2015 22:20 UTC
в комментах вроде на все почти отвечает снизу статей
Brezhnev Ivan
@vanchelo
Mar 11 2015 22:20 UTC
@greabock думаю да, у него статья есть по АОП на хабре
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:21 UTC
по-моему это уже перебор
Роман Сохарев
@greabock
Mar 11 2015 22:21 UTC
ща на почту ему напишу, может ответит
Denis Isaychenko
@Rhincodon
Mar 11 2015 22:22 UTC
можно кстати репозиторий этого его блога заклонить, он же там во всю DDD применяет
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:23 UTC
неужели это действительно лучше, нежели совмещать реализацию внутри объявления аннотации
?
нежели разделять на аспекты и аннотации, как в аоп
Роман Сохарев
@greabock
Mar 11 2015 22:28 UTC
@SerafimArts сложно сказать
Роман Сохарев
@greabock
Mar 11 2015 22:36 UTC
@SerafimArts Как бы ты решил такую проблему?
Есть несколько доменных зон, они разрабатываются разными поставщиками, которые предполагают о существовании друг друга, но прямо не участвуют в разработке доменов друг друга. Одному домену нужно внедрить поведение во второй домен, таким образом, что бы третий домен взаимодействующий со вторым тоже получил измененное поведение второго домена, внедренное первым. При этом, все что могут сделать разработчики доменов - это определить общий интерфейс изменения этого поведения (как бы оставить концы).
Какого рода концы они должны оставить?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:40 UTC
хм
самый простой способ и очевидный - тупо работать сквозь редиску или реббит
и договориться о структуре событий
Роман Сохарев
@greabock
Mar 11 2015 22:42 UTC
эм...
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:42 UTC
если я понял о чём ты
использовать отдельный сервер событий, в качестве сервера можно использовать прямой доступ к событийным кей-велью бд или сервера очередей
Роман Сохарев
@greabock
Mar 11 2015 22:43 UTC
когда я говорил о доменных зонах - я имел ввиду области ответственности. DDD (Domain Driven Design)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:44 UTC
я думал ты про разные ресурсы
которые просто обмениваются сообщениями
Роман Сохарев
@greabock
Mar 11 2015 22:44 UTC
нет )) Сам не люблю эту путаницу ((
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:44 UTC
в таком случае чем встроенные события лары не страивают?
Event::fire("domain:some@action.any");
Event::listen("domain:some@action*", function(){});
точнее нет
вначале экшн, потом домен
Роман Сохарев
@greabock
Mar 11 2015 22:46 UTC
Я думал о событиях. Они решают многие проблемы. Но не все. События могут сделать что-то "до" или "после". Но не заместить поведение.
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:46 UTC
в таком случае что значит "заместить поведение"?
переопределить функцию?
Роман Сохарев
@greabock
Mar 11 2015 22:48 UTC
как бы да, но в php прямо такое сделать не получится. Поэтому дожны быть какие-то внутренние объекты-поведения, которые могли бы замещаться
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:48 UTC
есть несколько способов переопределить функции
нативные
Роман Сохарев
@greabock
Mar 11 2015 22:48 UTC
В рамках класса или объекта?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:48 UTC
и так и так
Роман Сохарев
@greabock
Mar 11 2015 22:48 UTC
расскажи
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:49 UTC
при вызове защищённого метода извне - вызывается исключение
его можно проксировать с помощью __call
и прикол в том, что можно хранить одноимённые свойства в классе (имена такие же как у методов)
Роман Сохарев
@greabock
Mar 11 2015 22:50 UTC
эм, окей. Но как это применить?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:51 UTC
как следствие - можно сквозь рефлексию проверять наличие переменной, а потом уже вызывать метод
хм
Роман Сохарев
@greabock
Mar 11 2015 22:51 UTC
жесть, правда? ))
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:52 UTC
ну создаёшь трейт, например:
trait Prototype
{
    private $prototype = [];
    public function __call($method, $args) {
      // тут проверяем наличие замыкания в $this->prototype[$method] и вызываем его, иначе вызываем $this->$method
    }
}
ну и public function attach($method, callable $action) {}
и всем классам, которые должны иметь возможность подмены методов - добавлять этот трейт
З.Ы.
public function attach($method, callable $action) 
{
    $this->prototype[$method] = $action->bindTo($this);
}
если не путаю bind и bindTo
Роман Сохарев
@greabock
Mar 11 2015 22:55 UTC
@SerafimArts у меня в тентакле нечто подобное организованно
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:56 UTC
есть ещё один вариант
тентакли! :D
ахаха
лол
короче, ещё один вариант
но это уже за гранью, предупреждаю
Роман Сохарев
@greabock
Mar 11 2015 22:57 UTC
ну это для добавления связей к моделям из вне
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:57 UTC
в пыхе есть возможность определения стримов
require 'mystream://file.php';
например
Роман Сохарев
@greabock
Mar 11 2015 22:58 UTC
излагай, я кофейку налью )
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 22:58 UTC
в результате можно перехватить полученную строку (с названием файла), подключить её и вернуть новый код
с параллельным кешированием естественно
в результате мы получим совершенно другой класс при подключении сквозь свой кастомный стрим
но тут нужно разбиение по токенам, анализ лексем и прочее
Роман Сохарев
@greabock
Mar 11 2015 23:00 UTC
vqmod подобным образом работает
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 23:00 UTC
я хз что это, но я так кастомизировал пых =) https://github.com/SerafimArts/Mirror
добавил туда тайпхинтинг для примитивов
статический конструктор
и ещё что-то
Роман Сохарев
@greabock
Mar 11 2015 23:01 UTC
http://phpmirror.org/ ниработаит )
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 23:01 UTC
ага
всё равно забросил это дело
есть же jphp
+)))
в любом случае, допустим проверка на наличие public static function __static и автоматический её вызов - выглядит примерно так: https://github.com/SerafimArts/Mirror/blob/master/src/Prism/StaticParser.php
короче это изврат полнейший
но зато рабочий
и даёт совершенно безграничные возможности и контроль над языком, без проигрыша в скорости
но самое безболезненное - это конечно же runkit
так что я промолчу даже про него, ибо очевидно
Роман Сохарев
@greabock
Mar 11 2015 23:05 UTC
я если честно не понимаю, как оно работает и как им пользоваться )) описания нет
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 23:06 UTC
там есть пример
подключить phar
и написать require mirror://some.php
и внутри some.php можешь начать извращаться как угодно
Роман Сохарев
@greabock
Mar 11 2015 23:10 UTC
окей, как подключить ясно. А какие возможности-то предоставляет?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 23:11 UTC
я уже писал выше - под дефолту я добавил только статический конструктор для классов (вызывается автоматом при инициализации) и тайпхинтинг для всех скаляров
это то, что почти не мешает обратной совместимости
но в заначке где-то было ещё сокращённое объявление замыканий и функций

например:

Route::get('/some') {
  return Redirect::home();
}

и

class Some
{
  public __construct(){} // можно опускать ключевые слова function
}
но тогда подсветку начинает просто адово штормить
Роман Сохарев
@greabock
Mar 11 2015 23:14 UTC
shtorm'ить )
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 23:15 UTC
Роман Сохарев
@greabock
Mar 11 2015 23:16 UTC
что-то не очень народ оценил (
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 23:16 UTC
народ прав
это слишком сильно переворачивает розовый мир php