These are chat archives for LaravelRUS/chat

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

Ребята подскажите плиз. что то я уже совсем не пониаю) перешел с 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
@unlike777 четвертым параметров true укажи, с джоин работает
Подскажите пожалуйста, где и как правильно хранить свои библиотеки/классы, и как к ним обращаться? 4 ларавел
unlike777
@unlike777
Mar 11 2015 08:10
@kirill001 в любом удобном тебе месте, я храню в /app/libs , но только не забудь путь в автозагрузчик добавить
Kirill
@kirill001
Mar 11 2015 08:11
@unlike777 спасибо
unlike777
@unlike777
Mar 11 2015 08:12
@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
Есть Yii`ты ?
Константин Брызгалин
@constb
Mar 11 2015 09:28
@2byte я работал с Yii, но не скажу что прям отлично в нём разбираюсь. уж больно он дремучий, по крайней мере 1.х
Brezhnev Ivan
@vanchelo
Mar 11 2015 09:29
)
censoredgit
@censoredgit
Mar 11 2015 09:30
есть
даже проект делал
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
подскажите пожалуйста может кто сталкивался с таким.
Есть ссылка /category/0004?sort=advansive
Есть ли какой-то хелпер который уберет мне все что после "?" или это нужно самому писать хелпер? В хелперах url не нашел
Nikolay Kostyurin
@JiLiZART
Mar 11 2015 10:07
@2byte зачем тебе yii'ты?
Mikhail Donskoy
@mdnsk
Mar 11 2015 10:08
@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
less'сты есть?
Alexander Popov
@ruelephant
Mar 11 2015 10:11
народ канал по ларе
мы не обсуждаем размножение белых насорогов
ну может иногда
NelinD
@NelinD
Mar 11 2015 10:12
@ruelephant а слонов?
Orel
@2byte
Mar 11 2015 10:12
@NelinD есть )
Константин Брызгалин
@constb
Mar 11 2015 10:13
@tremor-od php функция parse_url устроит?
Orel
@2byte
Mar 11 2015 10:13
@JiLiZART знакомый хотел проект сделать на yii
Nikolay Kostyurin
@JiLiZART
Mar 11 2015 10:14
и, что его остановило?
Orel
@2byte
Mar 11 2015 10:14
@JiLiZART заказать
Nikolay Kostyurin
@JiLiZART
Mar 11 2015 10:14
ну есть площадки для этого, или можно на форум русского сообщества написать
Alexander Popov
@ruelephant
Mar 11 2015 10:14
его заказали
Orel
@2byte
Mar 11 2015 10:15
@JiLiZART не хочет гемора с рекрутингом
Alexander Popov
@ruelephant
Mar 11 2015 10:16
если шо там, пишите
любое говно за ваши деньги
Yii знаю
Orel
@2byte
Mar 11 2015 10:18
@ruelephant Буду иметь ввиду)
Alexander Popov
@ruelephant
Mar 11 2015 10:18
@2byte проекты 500 рублей/неделя не беспокоить :)
ставка 500 руб/ч базовая
Orel
@2byte
Mar 11 2015 10:20
@ruelephant Я понял)
Oleg
@tremor-od
Mar 11 2015 10:21
@constb та я думал , что есть у ларавела что-то стандартное но походу прийдеться свой хелпер писать для этого
Alexander Popov
@ruelephant
Mar 11 2015 10:22
по поводу лары, Route::resource('api/{apiVersion}/webinar', 'WebinarController');
почему он пытается получить значение то "Undefined variable: apiVersion"
он же должен его наоборот с URL забить
Anonim-khb
@Anonim-khb
Mar 11 2015 10:24
Всем привет. Подскажите, как-то изменились регистрация, авторизация и восстановление пароля в 5-ке?
Alexander Popov
@ruelephant
Mar 11 2015 10:27
походу все вымерли
искать до заголовка "User Authentication Model"
Vlad Barinov
@vbarinov
Mar 11 2015 10:44
@azuron что у тебя в файле config/database.php?
Viktor Grachev
@azuron
Mar 11 2015 10:45
@vbarinov там прописал настройки тоже для конекта к базе
Vlad Barinov
@vbarinov
Mar 11 2015 10:46
если там ты убрал env(переменная_окружения, умолч.), то данные из .env не сработают
какой драйвер? mysql?
Viktor Grachev
@azuron
Mar 11 2015 10:49
@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
mysql --version работает?
Viktor Grachev
@azuron
Mar 11 2015 10:50
'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
пароль и имя базы точно те? имхо, что-то с окружением
Viktor Grachev
@azuron
Mar 11 2015 10:51
нет не пашет
Vlad Barinov
@vbarinov
Mar 11 2015 10:51
в какой системе laravel работает?
Viktor Grachev
@azuron
Mar 11 2015 10:51
вот и я уже не знаю в чем дело может лара не видит мускул
мак
Bakyt
@2bj
Mar 11 2015 10:52
@azuron mamp?
Viktor Grachev
@azuron
Mar 11 2015 10:52
@2bj да
Bakyt
@2bj
Mar 11 2015 10:52
@azuron попробуй сокет прописать
Orel
@2byte
Mar 11 2015 10:52
AES-256,128 подлежит расшифровки без ключа?
Bakyt
@2bj
Mar 11 2015 10:53
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'
Viktor Grachev
@azuron
Mar 11 2015 10:53
@2bj понял спасибо, это в config/database.php?
Bakyt
@2bj
Mar 11 2015 10:53
@azuron да
Vlad Barinov
@vbarinov
Mar 11 2015 10:54
ещё может mysql сидеть на порте 8889, в этом случае добавить к конфигу 'port' => 8889
Bakyt
@2bj
Mar 11 2015 10:54

@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
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
@2bj прописал все так же((
Alexander Popov
@ruelephant
Mar 11 2015 10:55
я вот думаю, может так сделать? а внутрь RestController уже вызывать "нужные" классы
Bakyt
@2bj
Mar 11 2015 10:56
@azuron порт чекни
Alexander Popov
@ruelephant
Mar 11 2015 10:56
или это будет не феншуй?
Vlad Barinov
@vbarinov
Mar 11 2015 10:56
@azuron советую homestead настроить
Viktor Grachev
@azuron
Mar 11 2015 10:56
@2bj а как?
@vbarinov я вот тоже уже думаю об этом)) а то мам с ларой как то не дружит у меня)
Alexander Popov
@ruelephant
Mar 11 2015 10:56
есть еще вариант одной строкой
Route::resource('api/{apiVersion}/{method}', 'RestController');
как вам? красиво? :)
Orel
@2byte
Mar 11 2015 10:57
@ruelephant :+1:
Viktor Grachev
@azuron
Mar 11 2015 10:58
@2bj не буду голову ломать и себе и людям) настрою хомстед
Alexander Popov
@ruelephant
Mar 11 2015 10:58
а более авторитетные товарищи что скажут? :)
Viktor Grachev
@azuron
Mar 11 2015 10:58
спасибо всем за советы!
Vlad Barinov
@vbarinov
Mar 11 2015 10:59
после Zend2 маршруты Laravel просто сказка. @ruelephant шикарно
Bakyt
@2bj
Mar 11 2015 10:59
@azuron хомстед тормознутый (mac + virtualbox)
@azuron shared folders тупит
Viktor Grachev
@azuron
Mar 11 2015 11:00
@2bj знаю но как победить мамп)
Vlad Barinov
@vbarinov
Mar 11 2015 11:00
@2bj NFS :)
Viktor Grachev
@azuron
Mar 11 2015 11:00
просто решил поработать правильно на локалке и изменения комитить через гит а тут такая засада))
Vlad Barinov
@vbarinov
Mar 11 2015 11:01
пишешь type: nfs в шарную папку и всё летает
Bakyt
@2bj
Mar 11 2015 11:01
@azuron вообще всё можно поставить через homebrew
Viktor Grachev
@azuron
Mar 11 2015 11:02
вместо мампа?
php+mysql
Bakyt
@2bj
Mar 11 2015 11:02
@vbarinov насколько летает?
@azuron да
nginx + php-fpm
Viktor Grachev
@azuron
Mar 11 2015 11:03
@2bj кстати тоже как вариант) спасибо!
Bakyt
@2bj
Mar 11 2015 11:03
@vbarinov спс
Vlad Barinov
@vbarinov
Mar 11 2015 11:04
на порядок быстрее чем чистый vbox. один минус, из под windows куча проблем с этим
Alexander Popov
@ruelephant
Mar 11 2015 11:04
@slider23 еу еу
Bakyt
@2bj
Mar 11 2015 11:04
@vbarinov к сожалению, не получится проверить под виндоус )
Vlad Barinov
@vbarinov
Mar 11 2015 11:05
@2bj счастливчик, я из под windows мазохизмом порою занимаюсь
Константин Брызгалин
@constb
Mar 11 2015 11:08
а никому на торрентах не попадался драйвер вмвари для вагранта? =)
Vladislav Maksimchuk
@condoriano
Mar 11 2015 11:27
а никто не пытался хранить в .env массивы массивов?
Brezhnev Ivan
@vanchelo
Mar 11 2015 11:33
нет, зачем?
для этого есть файлы конфигурации
Alexander Popov
@ruelephant
Mar 11 2015 11:51
бред
Route pattern "/api/{apiVersion}/{apiMethod}/{{apiMethod}}" cannot reference variable name "apiMethod" more than once.
причем обращение идет вообще к 404 пути
типо /blablabla
Vladislav Maksimchuk
@condoriano
Mar 11 2015 11:52
@vanchelo например хранить список имейлов для рассылки инфы о заказе
@vanchelo но как только я написал в чат, я внезапно вспомнил про «,» + «explode»
Alexander Popov
@ruelephant
Mar 11 2015 11:52
неед хелп :)
загадка века
почему он трогает этот роут
он же не совпадает
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
хм
/ в конце поставить и все сразу гуд
баг похоже
Константин Брызгалин
@constb
Mar 11 2015 12:16
@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
Ребят, как контроллеру обратится к модели?
Я пытаюсь в контролле обратится к методу $addnews = News::add();, который находится в модели
Vladislav Maksimchuk
@condoriano
Mar 11 2015 12:40
а проблема в чем?
hvarts
@hvarts
Mar 11 2015 12:40
@condoriano FatalErrorException in NewsController.php line 31:
Class 'App\Http\Controllers\News' not found
не понимаю какую зону видимости ему надо установить
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:44
\News::add()?
hvarts
@hvarts
Mar 11 2015 12:44
Class 'News' not found
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:45
ну посмотри где он у тебя
в каком неймспейсе
hvarts
@hvarts
Mar 11 2015 12:45
@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
омфг
Vladislav Maksimchuk
@condoriano
Mar 11 2015 12:45
заметил много народу учит «программирование» с фреймворка, а не с языка
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:46
чёрным по белому же написан неймспейс
@condoriano +1
только что хотел написать, чтоб отправлялись учить язык для начала, а потом уже развлекались с фреймами
@hvarts ты уже понял в чём у тебя проблема, объяснять не надо?
hvarts
@hvarts
Mar 11 2015 12:47
@SerafimArts можно разок объяснить?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:47
ты знаешь что такое пространство имён?
hvarts
@hvarts
Mar 11 2015 12:48
@SerafimArts я уже понял, что он не видет модель News
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:49
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
@SerafimArts опять же Class 'News' not found
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:53
автолоадинг нормально настроен?
hvarts
@hvarts
Mar 11 2015 12:54
@SerafimArts не настраивал вообще
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:55
ну в таком случае с чего ты решил, что класс должен грузиться?
hvarts
@hvarts
Mar 11 2015 12:55
@SerafimArts где настраивается автолоадинг?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:56
в композере например
Denis Isaychenko
@Rhincodon
Mar 11 2015 12:56
  • в компостере :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:57
(с) Паук
ага
например
hvarts
@hvarts
Mar 11 2015 12:57
Я окончательно запутался. :(
Orel
@2byte
Mar 11 2015 12:58
@hvarts какая версия лары?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 12:58
@2byte ты действительно собираешься помогать человеку, который даже языка не знает, но лезет в дебри? +)
hvarts
@hvarts
Mar 11 2015 12:58
@2byte 5
@2byte я на 4-м мог писать, там не было байды с namespace aka use
Denis Isaychenko
@Rhincodon
Mar 11 2015 13:00
байды :)
Alexander Popov
@ruelephant
Mar 11 2015 13:00
согласен
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:00
эта "байда" везде была
Alexander Popov
@ruelephant
Mar 11 2015 13:00
в php 3 трава зеленей была
можно было сразу писать в URL &is_admin=true
и оно было доступно как $is_admin
вот это была жизнь
и только православные include
Orel
@2byte
Mar 11 2015 13:02
@hvarts покажи свой контроллер, а точнее файл контроллера
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:03
да!
Function php2rule $y (print "php 2 $y!");
Alexander Popov
@ruelephant
Mar 11 2015 13:03
боже что это?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:03
php 2
Точнее php/fi
Alexander Popov
@ruelephant
Mar 11 2015 13:04
а ты знаешь древнее кун-фу
:)
Orel
@2byte
Mar 11 2015 13:04
@SerafimArts ну с моделькой можно помочь, может смотивирует разобраться почему это так)
Denis Isaychenko
@Rhincodon
Mar 11 2015 13:04
древнее фу фу :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:04
:D
только что узнал
только тссс
Alexander Popov
@ruelephant
Mar 11 2015 13:05
$err_code = @dbmopen($filename,"w");
как я скучаю по тебе.... @ в коде
никаких тебе try
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:06
@fopen!
Alexander Popov
@ruelephant
Mar 11 2015 13:06
суровые мужики сурово подавляют
@userFunction()
Orel
@2byte
Mar 11 2015 13:06
:smile:
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:06
подавляющая суровость
Alexander Popov
@ruelephant
Mar 11 2015 13:06
суровый программист - 99 лвл
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:07
или просто эльф
Alexander Popov
@ruelephant
Mar 11 2015 13:07
а кто помнит конструкцию "or die();"
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:07
программирование в стиле эльфийской магии
Orel
@2byte
Mar 11 2015 13:07
@ruelephant яя) в паре mysql_connect
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:07
это не конструкция
Alexander Popov
@ruelephant
Mar 11 2015 13:07
mysql_connect() or die('Мы сломались');
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:07
это поведение
Alexander Popov
@ruelephant
Mar 11 2015 13:08
а до этого еще кусок шапки дизайна...
подвал уже не догрузился
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:08
mysql_connect возвращает bool
по этому условный оператор "или" продолжает свой полёт =)
Alexander Popov
@ruelephant
Mar 11 2015 13:08
ну в общем это конструкция
хоть и не языковая
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:08
нет
языковая
if($some or $any) {}
будет то же самое
Alexander Popov
@ruelephant
Mar 11 2015 13:09
у нас путиница в терминологии
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:09
это не синтаксическая лексема, ты хотел сказать =)
а обычный оператор
Orel
@2byte
Mar 11 2015 13:09
Столько безопасных кодеров было, которые защищали свои формы xss(mysql_real_escape_string(check($_POST)))
Alexander Popov
@ruelephant
Mar 11 2015 13:09
о да
еще html_strip_tags
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:10
tags!
html_strip_tags!
Orel
@2byte
Mar 11 2015 13:10
Да да))
Alexander Popov
@ruelephant
Mar 11 2015 13:10
зануда!
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:10
это надо наизусть знать!
:D
Иначе ты не настоящий пыхер
Orel
@2byte
Mar 11 2015 13:11
В каждом файле session_start(); )))
Alexander Popov
@ruelephant
Mar 11 2015 13:11
о да
if(!isset($_SESSION)) {
     session_start();
}
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:12
defined('MY_PROGRAMM') or die('Нельзя вызвать файл');
Oleg
@tremor-od
Mar 11 2015 13:12
подскажите пожалуйста , можно ли проверку вставить как-то между where и orderBy или нужно в модели делать такие вещи
Product::where('sort', '>=', $selectedCategory->code_min)->orderBy('sort', 'asc')->get();
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:13
можно
вначале засунуть первую половину в переменную, а потом из неё вызвать вторую половину
Alexander Popov
@ruelephant
Mar 11 2015 13:13
<?php
question(toBe() or notToBe());
?>
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:13
а потом опять заиспользовать первую, добавить туда условие
Oleg
@tremor-od
Mar 11 2015 13:13
ага, спасибо, попробу.
Alexander Popov
@ruelephant
Mar 11 2015 13:14
это поэзия! :)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:14
@ruelephant кофе - вот это поэзия
ща
Alexander Popov
@ruelephant
Mar 11 2015 13:15
Orel
@2byte
Mar 11 2015 13:15
Еще установка различных magic_quotes safe_mode
Alexander Popov
@ruelephant
Mar 11 2015 13:15
читать как стихи :)
Orel
@2byte
Mar 11 2015 13:16
@ruelephant ахаха :smile:
:D
Alexander Popov
@ruelephant
Mar 11 2015 13:18
я вот думаю как избавиться от restController
он же по сути прокладка
не охото прибегать к методу __call или в каждом методе писать "прокси"
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 13:19

из

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

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

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

Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 15:51

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

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

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

            $content = $this->morphToJson($content);
        }
даже не так, метод же ещё shouldBeJson
Alexander Popov
@ruelephant
Mar 11 2015 16:01
хм не знал про него
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:05
Более того - у меня в коде есть совершенно невероятные конструкции
например обыкновенный контроллер: 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
да примитив же
а что там осиливать?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:11
в модельке или контроллере?
Alexander Popov
@ruelephant
Mar 11 2015 16:11
простая
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:11
если не учитывать контрактное программирование
то да, простая
но для меня лично работа на аннотациях - пока ещё в новинку
или это я только один такой слоупок все подписки начал разруливать ими, а остальные уже 100 лет юзают? :'(
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:14
@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
это только для элоквента
ага
ну и плюс моя доработка - маппинги, для строгой типизации моделей
Alexander Popov
@ruelephant
Mar 11 2015 16:15
за анотации я бы убивал
ржавой секирой
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:16
@SerafimArts а где валяется маппинг?
Alexander Popov
@ruelephant
Mar 11 2015 16:16
это называется ЛЕНЬ
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:16
там же сверху use
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:16
ага
для каждой модели свой маппинг?
как оно кстати с автокомплитом дружит?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:17
я это делал только для того, чтоб объединить метод create и edit в одном
т.е. во время create генерируется модель с пустыми данные

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

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

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

з.ы.

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

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

Brezhnev Ivan
@vanchelo
Mar 11 2015 16:23
норм
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:24
ну и весь автокомплит и прочее
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:25
ты под Idea рабоатешь?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:26
на работе шторм, дома идея
сейчас я на работе, среда как бы
=)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:27
явавские либы юзаешь?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:27
неа
дома только развлекаюсь
я не понимаю к чему ты клонишь
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:27
просто интересусь)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:28
аннотации почти что нативно пыхом поддерживаются, если что
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:29
это хорошо
лара на jphp заведется?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:29
нет
у Jphp своё апи
там разве штук 10 функций из оригинала
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:30
выходит только если переписать
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:31
перенести можно, да
например
function str_replace($a, $b, $c) {
  return php\lib\str::replace($c, $a, $b);
}
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:32
ага, это оно)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:33
что "оно"? о_0
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:35
оно, в том смысле что файлик накидать с функциями
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:35
ты видел сколько там всего функций?
это адовый ад
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:36
надо составить список тех что юзаются в ларке
хотя бы
без дополнительных библиотек
парсером каким-нить пройтись
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:37
ну есть прикол, я уговорил Диму заморозить стдлиб и подумать над небольшим его переделыванием
например заменить класс php\lib\str на Lib\String
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:38
ага, человечнее
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:38
единственная проблема пока что - это кейворд array
jphp-compiler/jphp#172
если от него избавиться как-нибудь - наступит счастье
а избавиться нельзя, т.к. всякие среды разработки начнут глючить
а переписать их нельзя, т.к. код закрытый, например у шторма
а попросить их (разрабов иде) добавить как альтернативный язык - невозможно
единственный вариант - переписать весь плагин php с нуля
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:40
гы
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:40
вот таким образом уважаемые JB тормозят развитие языков
:D
Alexander Popov
@ruelephant
Mar 11 2015 16:41
костыль не заработал :(
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
а почему ты решил что заработает?
Alexander Popov
@ruelephant
Mar 11 2015 16:42
ну там один чувак делал такое :)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:42
хм
лара роут ведь уже отыскала
Alexander Popov
@ruelephant
Mar 11 2015 16:43
правда у него тоже не заработало :)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:43
зачем ей второй раз в них смотреть
Alexander Popov
@ruelephant
Mar 11 2015 16:43
@vanchelo я мучаюсь с этим Route::resource, он хочет контролер
а мне надо там выбор сделать контролеров, а не на конкретный посылать
копипастить роуты не вариант
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:43
форычем
Alexander Popov
@ruelephant
Mar 11 2015 16:44
ну это не ах решение
сам понимаешь
куча роутов плодить всеравно
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:44
то что ты выше написал совсем не АХ)
оно даже логически не должно работать
Alexander Popov
@ruelephant
Mar 11 2015 16:44
есть вариант сделать "проксирующий" контролер, который уже из методов вызвает нужный
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:44
+1
Alexander Popov
@ruelephant
Mar 11 2015 16:45
но там тоже есть загвозка
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:45
app($controllerName)->call($action)
Alexander Popov
@ruelephant
Mar 11 2015 16:45
@vanchelo дада, только он контролером не будет являтся :)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:45
а чем?
Alexander Popov
@ruelephant
Mar 11 2015 16:45
и такой проксирующий код надо получается во все методы restfull
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:45
замыкание?
Alexander Popov
@ruelephant
Mar 11 2015 16:46
толку то? всеравно как то меня коробит с проксирующим контролером
это пахнет костылем, потому что Route::resource не поддерживает то что надо
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:47
не, ты написал что он контроллером не является
а чем же тогда?
Alexander Popov
@ruelephant
Mar 11 2015 16:47
ну он не вызывается "из движка" поэтому он не совсем контролер
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:47
бред
что такое контроллер, расскажи?
т.е. что ты имеешь ввиду
Alexander Popov
@ruelephant
Mar 11 2015 16:48
грубо говоря не так
я не уверен что вызов "app($controllerName)->call($action)" === вызову из Route::resource движком
там обычно особая магия применяется, для вызовов контролера (в Yii там третья вода не киселе)
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:49
Route::resource это просто создание кучи роутов
Alexander Popov
@ruelephant
Mar 11 2015 16:49
чтонибудь не проинициализируюешь и приехали
это понятно, я имею введу механизм роута когда нашел матч, как он контролер зовет
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:49
Route::resource никакие контроллеры не вызывает
Alexander Popov
@ruelephant
Mar 11 2015 16:50
ДА ЭТО ПОНЯТНО
я специально обстрагировался, что бы не лезть в дебри
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:50
открой исходники и посмотри как контроллеры дергаются
Alexander Popov
@ruelephant
Mar 11 2015 16:50
это обертка над стандартным роутами
в другом месте наверное
там коллекция собирается, а где сам вызов хз
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:51
зачем Route::resource?
Alexander Popov
@ruelephant
Mar 11 2015 16:52
это restfull обертка
что бы руками не делать
Brezhnev Ivan
@vanchelo
Mar 11 2015 16:52
я знаю) спрашивал в контексте @ruelephant'a)
Alexander Popov
@ruelephant
Mar 11 2015 16:53
у меня API сервиса, пытаюсь обеспечить версионность
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:53
А оно тебе сейчас надо?
Не проще ли пока что забить
?
Alexander Popov
@ruelephant
Mar 11 2015 16:54
нет
для хомяка я бы забил, но тут компоративный рабочий проект
это есть в требованиях
попробую конечно проксирующий сделать
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:55
стой, а что мешает сохранять версию в сессии?
Alexander Popov
@ruelephant
Mar 11 2015 16:56
там нет сессий
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:56
где нет?
Alexander Popov
@ruelephant
Mar 11 2015 16:56
нет кук, каждый вызов он атомарный
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:56
о_0
Alexander Popov
@ruelephant
Mar 11 2015 16:56
это не для браузера интерфейс
хоть и по http
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:57
Ну сделай класс с версиями
Alexander Popov
@ruelephant
Mar 11 2015 16:57
за использование кук, меня на-той-стороне расстреляют
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:57
и туда сохраняй текущую
Alexander Popov
@ruelephant
Mar 11 2015 16:57
да ты не понял, номер версии есть в URL
проблема развести грамотно классы
учитывая что в Route::resource держит только фиксовый класс
а копипастом заниматся не охото
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:58
App::before(function(){
  If (Input::get('version')) {
    if (Input::get('version') === '1') { VersionRegistry::create(new ApiV1); }
  }
});
Alexander Popov
@ruelephant
Mar 11 2015 16:58
а в VersionRegistry::create что?
вы решаете не ту задачу
ладно домой приду опишу подробнее
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 16:59
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
хм, lifetime подписка на laracasts 249$ , то есть нужно быть точно увереным что ты выживешь минимум в течении 2-х лет, и эти 2 года будешь использоваль laravel :)
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:17
Всем привет!
Ребята, вы еще помогаете с ларой 4.2 или уже только 5?:)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:18
только православный 4.2!
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:24

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

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

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

простите, с синтаксисом в этом чате пока не алё)
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:26
->take(количество_элементов), ->skip(сколько_пропустить)
?
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:27
так по идее это будет для Category. Товары в данном примере "вложены" в категорию
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:29
хм
там было что-то такое
ща
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:29
ну то есть если я сделаю take, это сработает для первой выборки же, с категориями, а не для второй с товарами
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:32
о!
->with(['products' => function($query) {
    $query->take(10)->skip(0);
})
->...
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:36
о! спасибо! только... а как в таком случае передать номер, просто вторым аргументом функции?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 17:36
с помощью use
Это же обычные лямбды
=)
ChristopherFuller
@ChristopherFuller
Mar 11 2015 17:38
огоспади, туплю)))) спасибо огромное!!!
Annywebart
@Annywebart
Mar 11 2015 18:11
Всем привет! Подскажите, пожалуйста, можно ли с помощью 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
нет, только с помощью квери билдера
но т.к. элоквент проксирует на билдер - можно
хотя...
а нафига такой запрос-то?
не проще ли вот так?
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
т.е. это вот такой запрос получится 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

@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
почему апи должно быть контроллером?
почему не отдельным классом
апи - это вообще модель скорее
с другой стороны апи поверх хттп, т.е. должен быть доступ к роутам...
хм
Господа лараведы и ларапеды
расскажите пожалуйста, почему может не работать 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
Ребята прошу помочь при запуске 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
мне еще не приходилось писать api) контроллер будет разруливать права доступа и т.п.
Annywebart
@Annywebart
Mar 11 2015 18:33
@SerafimArts Спасибо, сейчас попробую
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:33
сек, скрины накидаю
volt2000
@volt2000
Mar 11 2015 18:34
Ребята прошу помочь при запуске 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
о
а я понял походу
slider23
@slider23
Mar 11 2015 18:35
Это канал про аниме ?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:35
я вызываю другой метод контроллера
О да, заработало =)
volt2000
@volt2000
Mar 11 2015 18:36
Ну ребят помогит с ошибкой [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
@volt2000 HL2RP это сборка half-life 2 ?
Denis Isaychenko
@Rhincodon
Mar 11 2015 18:37
на laracasts тоже начался срач о репозиториях и зачем их применять :) https://laracasts.com/discuss/channels/general-discussion/scopes-vs-repository
slider23
@slider23
Mar 11 2015 18:38
@volt2000 Ты уверен, что туда куда надо пишешь ?
volt2000
@volt2000
Mar 11 2015 18:38
@slider23 Ну просто думал тут хоть помогут
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:38
@slider23 ты что, не знаешь луашечку?!
как ты можешь
это же модно, молодёжно =)
volt2000
@volt2000
Mar 11 2015 18:39
@censoredgit Я скачал НатСкрипт и НС ХЛ2РП поставил все и при запуске эта херь
slider23
@slider23
Mar 11 2015 18:40
@volt2000 на чем основывалось твоё предположение, что в чате по php-фреймворку помогут с этим вопросом ?
ArtMik
@ArtMik
Mar 11 2015 18:45
Доброго времени суток! Через composer создал проект на локалке. Сделал сайт. Перенес на хостинг бегет (http://studcamp.ru) и мне выдает ошибку. В чем проблема? Пробовал перезалить и обновить композер на локалке после чего опять же перезалить. На локалке точно такая же версия и все работает. На хосте - нет.
Что делать?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:45
рекомендую исправить ошибку
скорее всего это поможет ;)
ой
ArtMik
@ArtMik
Mar 11 2015 18:46
Ты гений. Но в этом то и проблема. Я не знаю как исправить.
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:46
не заметил ссылку
=)
ArtMik
@ArtMik
Mar 11 2015 18:47
Там ругается на связи. А на локалке все хорошо.
JhaoDa
@jhaoda
Mar 11 2015 18:48
@ArtMik мы должны ошибку угадать?
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:48
там есть ссылка
censoredgit
@censoredgit
Mar 11 2015 18:48
@ArtMik откл ошибки в пхп.ини
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:48
лол
скорее наоборот
включить на локалке
и исправить проблемы
а потом уже в прод
=)
JhaoDa
@jhaoda
Mar 11 2015 18:49
Пх, я думал, это бегет домен сменил...
censoredgit
@censoredgit
Mar 11 2015 18:49
=)
ArtMik
@ArtMik
Mar 11 2015 18:49
ПОдождите. На локалке все отлично работает. Так как надо.
А на хосте ошибку пишет.
СП перевели мне ошибку на русский и игнорят теперь.
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:50
с error_reporting(E_ALL);?
slider23
@slider23
Mar 11 2015 18:50
опыт телепатии подсказывает мне, что ты залогинен на локалке, и разрабатываешь залогиненным. И в шаблоне юзаешь Auth::user()->something . А на хостинге ты разлогинен и получаешь вот эту ошибку, что, мол, берёшь ->something у null
Разлогинься на локалке и получишь ту же ошибку
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:52
@slider23 а ты не думаешь, что на локалке просто отключены ошибки?
ArtMik
@ArtMik
Mar 11 2015 18:52
Разлогинился. Все норм.

с error_reporting(E_ALL);?

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

Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:53
хм
ArtMik
@ArtMik
Mar 11 2015 18:53
Выдает -1
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:54
что выдаёт и где?
slider23
@slider23
Mar 11 2015 18:54
Ну тогда смотри свой showTestsList.blade.php , объекты, у которых ты берешь значения аттрибутов - почему там не может быть собственно объектов.
ArtMik
@ArtMik
Mar 11 2015 18:54
<?php echo $test->tag->name; ?>
вот тут ругается
Test - это моделька
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:54
dd($test->tag) например
ArtMik
@ArtMik
Mar 11 2015 18:54
public function tag()
{
return $this->hasOne('Categorie', 'id');
}
Kirill Nesmeyanov
@SerafimArts
Mar 11 2015 18:55
вангую там null
всё, я убёг домой, всем бб
ArtMik
@ArtMik
Mar 11 2015 18:56
Нет, там не 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
@ArtMik чисто для порядка: не Categorie, а Category
censoredgit
@censoredgit
Mar 11 2015 18:58
@ArtMik ты на локалке смотришь или на серваке?
JhaoDa
@jhaoda
Mar 11 2015 18:59
This message was deleted
ArtMik
@ArtMik
Mar 11 2015 19:00
чисто для порядка: не 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
@ArtMik тебя попросили сделать dd($test->tag), а ты сделал dd($test)
JhaoDa
@jhaoda
Mar 11 2015 19:03
@ArtMik ну в дампе видно же object(Categorie)
У тебя тэги в таблице категорий? Точно
ArtMik
@ArtMik
Mar 11 2015 19:04
Да.
JhaoDa
@jhaoda
Mar 11 2015 19:04
Зачот... ну а чо, действительно, можно вообще в одной таблице хранить всё...
ArtMik
@ArtMik
Mar 11 2015 19:05
лол
Но тем не менее
Дак и на локалке
["relations":protected]=> array(0) { }
JhaoDa
@jhaoda
Mar 11 2015 19:07
Ну тогда это гейзен-баг и ждём элефантуса, он хвалится телепатическими способностями
Правда, только хвалится...
ArtMik
@ArtMik
Mar 11 2015 19:08
Блин. Все довольно плохо.
["relations":protected]=> array(0) { } а вот тут, как я понял, должен быть не пустой массив?
JhaoDa
@jhaoda
Mar 11 2015 19:10
@ArtMik ну ты видишь, что я сообщение уже удалил?:)
Значит, можно расслабиться
ArtMik
@ArtMik
Mar 11 2015 19:11
Оу, я не заметил. Прочитал и все.

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

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

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

ОЧЕПЯТКО !!!

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

например:

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

и

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