Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Добрый день.
Ищу разовый проект или поддержку на небольшую загрузку.
Опыт работы 10+ но позиционирую себя как Middle(Хотя могу похвастаться проектами далеко не Middle).
Основное направление Backend, но без проблем могу поправить и форонт в разумных пределах.
Стек: Linux/Laravel 5.*/Mysql/RabbitMQ/JavaScript/Git/Vue/Asterisk.
Отчетность Trello либо Jira.
Никаких скриншотеров, либо подобной гадости - моей отдачи вам хватит и так с запасом.
Недавно завершились два проекта, где я участвовал, соответственно ищу замену.
Интересует разовый проект, либо проект с небольшой нагрузкой на длительное сотрудничество, в идеале связанный с VOIP либо, что-то на подобии.
"Забацай сайтик" по быстрому и лендинги - не по адресу, извините версткой владею плохо.
Ищу, что-то интересное, срочной необходимости нет, соответственно откровенно бредовые проекты прошу не предлагать - не хочу тратить ваше и свое время.
Если кому интересно пишите на почту syesta@bk.ru.
Буду рад сотрудничеству.
ps: относительно английского (всплыло как-то сразу) Уровень pre-intermediate, соответственно я не смогу участвовать в митингах и вести переписку(корректно и без ошибок), понимаю что хотелось бы - но уж как есть...
Добрый день.
Ищу разовый проект или поддержку на небольшую загрузку.
Опыт работы 10+ но позиционирую себя как Middle(Хотя могу похвастаться проектами далеко не Middle).
Основное направление Backend, но без проблем могу поправить и форонт в разумных пределах.
Стек: Linux/Laravel 5.*/Mysql/RabbitMQ/JavaScript/Git/Vue/Asterisk.
Отчетность Trello либо Jira.
Никаких скриншетеров, либо подобной гадости - моей отдачи вам хватит и так с запасом.
Недавно завершились два проекта, где я участвовал, соответственно ищу замену.
Интересует разовый проект, либо проект с небольшой нагрузкой на длительное сотрудничество, в идеале связанный с VOIP либо, что-то на подобии.
"Забацай сайтик" по быстрому и лендинги - не по адресу, извините версткой владею плохо.
Ищу, что-то интересное, срочной необходимости нет, соответственно откровенно бредовые проекты прошу не предлагать - не хочу тратить ваше и свое время.
Если кому интересно пишите на почту syesta@bk.ru.
Буду рад сотрудничеству.
ps: относительно английского (всплыло как-то сразу) Уровень pre-intermediate, соответственно я не смогу участвовать в митингах и вести переписку(корректно и без ошибок), понимаю что хотелось бы - но уж как есть...
Для того чтобы удалить задание из очереди (согластно документации), нужно добавить в команду трейт Illuminate\Queue\InteractsWithQueue, который предоставляет методы delete и release.
Потом в методе handle самого Job можно удалить задачу. Тут все хорошо и верно работает.
Вопрос как удалить задачу из клаcса который $handler = new \App\Lib\NewClass(); ?
<?php
namespace App\Jobs;
use App\Jobs\Job;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Queue;
class MyJob extends Job implements SelfHandling, ShouldQueue
{
use InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
}
/**
* Execute the command.
*
* @return void
*/
public function handle()
{
$handler = new \App\Lib\Cashback\NewClass();
return;
}
public function failed()
{
Log::info("failed:", (array) $this->toArray());
}
}
class NewClass
{
protected $handlers = [];
public function setDelete()
{
$this->delete();
}
}
Те я хочу в класе NewContainer сделать $This->delete(), как мне это сделать, при условии что NewContainer я не хочу наследовать от Job клаcса.
Добавить
use InteractsWithQueue, Queueable, SerializesModels;
в NewClass не получится, так как в нем нету обекта класа Job, вариант наследовать мне не подходить. Возможно както можно получить объект класа Job??
Имею стандартную ситуацию scope в моделе:
public static function scopeGetUserStores($query, $user_id = false)
{
if (!$user_id) {
$user_id = \Auth::id();
}
$user = $query->with('store_lists')->find($user_id);
$stores = $user->store_lists->pluck('id')->toArray();
return (is_array($stores)) ? $stores : [];
});
}
По логике вещей в контролере, если у пользователя нет складов должен быть пустой масив, но так не получается в контролер возврашается
Exception.
Приходится делать дополнительную проверку в контролере, что то на подобии:
$list_stores= (is_array($stores)) ? $stores : [];
Хотя ты уже эту проверку сделал в model... И как то поменять это поведения я не могу. Так как проблема на форуме не поднималась я смею догадываться что чего то не знаю просто, а решается она достаточно легко - может подскажет кто ?
Ps: логичный вариант словить Exception тоже не проходит....
try {
$stores = $user->store_lists->pluck('id')->toArray();
} catch (\Exception $e) {
return [];
}
Собственно есть такой классный progressbar
, который может показывать выполнение команды в консоли.
В консоли все работает отлично:
$progress = new ProgressBar($this->output, 50);
// start and displays the progress bar
$progress->start();
$i = 0;
while ($i++ < 50) {
sleep(1);
$progress->advance();
}
на выходе 0/2 [>---------------------------] 0% и бегущая "птитчка".
Но так как команд много, иногда возникает желание запускать даные команды из GUI не заходя в консоль. Делается это очено просто (согласно документации )
// Блок artisan
Route::get('artisan/{id}', function($id)
{
return \Artisan::call($id, []);
});
И вот хотелось бы чтобы и прогрес баз показывался в консоли. немного погуглив я нашел ссылочку http://lukaswhite.com/blog/post/2014/ru … board-gui/
радостный начал тестить - на выходе ничего, поковыряв исходный класс а потом и найдя ссылку https://laracasts.com/discuss/channels/ … -laravel-5
я понял что процес затягивается:
Может кому пригодится в L5 это решается так:
use Symfony\Component\Console\Output\StreamOutput;
$this->output = new StreamOutput(fopen('php://output', 'w'));
$bar = new ProgressBar($this->output, 10);
Либо
use Symfony\Component\Console\Output\BufferedOutput;
$output = new BufferedOutput;
$bar = new ProgressBar($output, 10);
Но проблема в том, что вывод в GUI появляется уже в конце когда скрипт отработал, а хотелось бы чтобы это было в виде прогресбара...
Догадываюсь что все не все так просто и это нужно делать как-то иначе...
Прошу просветить, как решить проблему... Или хотя бы пример реализации чего то похожего...
Забили упомянуть на чем написан сайт...
Походу самому отвечать...
<?php
require dirname(dirname(__DIR__)) . '/vendor/autoload.php';
require dirname(__DIR__) . '/config.php';
use Illuminate\Database\Capsule\Manager as DB;
use Illuminate\Cache\CacheManager as CacheManager;
$dbc = new DB;
$dbc->addConnection(array(
'driver' => 'mysql',
'host' => DB_HOST,
'database' => DB_NAME,
'username' => DB_USER,
'password' => DB_PASSWORD,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
));
# Set the default fetch mode for all queries
$dbc->setFetchMode(PDO::FETCH_CLASS);
# Set up the cache
$container = $dbc->getContainer();
$container['config']['cache.driver'] = 'memcached';
$container['config']['cache.memcached'] = array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100);
$container->offsetGet('config')->offsetSet('cache.driver', 'array');
$cacheManager = new CacheManager($container);
$dbc->setCacheManager($cacheManager);
$dbc->setAsGlobal();
$dbc->bootEloquent();
global $dbc;
Добрый день.
Пытаюсь использовать Illuminate\Database в NOn Laravel.
Делаю вот так:
<?php
namespace App;
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Cache\CacheManager;
use Illuminate\Container\Container; // Only needed for DB
use Illuminate\Events\Dispatcher;
use Illuminate\Filesystem\Filesystem;
$capsule = new Capsule;
$container = $capsule->getContainer();
$cache_dir = '/tmp';
$container['config']['cache.driver'] = 'file';
$container['config']['cache.path'] = $cache_dir;
$container['files'] = new Filesystem();
$capsule->addConnection([
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'rr20',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]);
$capsule->setEventDispatcher(new Dispatcher(new Container));
$capsule->setCacheManager(new CacheManager($container));
$capsule->setAsGlobal();
$capsule->bootEloquent();
Все красиво, все работает.
Только пытаюсь перекинуть все на memcache
$capsule = new Capsule;
$container = $capsule->getContainer();
$container['config']['cache.driver'] = 'memcached';
$container['config']['cache.servers'] = [['host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ]];
// $cache_dir = '/tmp';
// $container['config']['cache.driver'] = 'file';
// $container['config']['cache.path'] = $cache_dir;
// $container['files'] = new Filesystem();
$capsule->addConnection([
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'rr20',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]);
$capsule->setEventDispatcher(new Dispatcher(new Container));
$capsule->setCacheManager(new CacheManager($container));
$capsule->setAsGlobal();
$capsule->bootEloquent();
Выбрасывает исключение
PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Class memcached.connector does not exist' in /srv/sites/public/vendor/illuminate/container/Illuminate/Container/Container.php:501
Stack trace:
Прошу помочь...
Добрый день.
Хочу поднять тему, форматирования кода в IDE отличных от шторма. На сколько я понимаю синтаксис blade файлов и соответственно подсветку кода, сейчас корректно отрабатывает только 3 IDE да и то не полностью.
Comodo
Sublime
PhpStorm
Форматировать же код умеет только последний, да и то делает он это не фонтан...
Собственно вопрос, если не пользоваться PhpStorm можно как-то решить проблему с форматирование кода в других IDE?
Грубо говоря нужна строка параметров для /php_beautifier либо /tidy для форматирования кода Blade файлов. Если кто нашел - поделитесь ссылкой.
Заранее благодарю.
Ps. как костыльное решение для тех кто ну вообще не может ничего найти для решения - могу предложить http://www.dirtymarkup.com/.
Через копировать вставить работает....
Сам спросил - сам отвечу.
Попытка запустить php с ключом -d, приводит к таким глюкам. Уж не знаю с чем связано. Плохо конечно - приходится полагаться на сам фраймворк, оставляя вероятность "завешать" сервер.
/usr/bin/php -d max_execution_time=300 /path/to/artisan schedule:run 1
Добрый день!
Согласно документации http://laravel.com/docs/5.1/scheduling#introduction запуск по крону
* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1
запустил, пару раз скрипт сработал - потом переклинило [RuntimeException] Too many arguments. в консоли.
Те скрипт не видит Get аргумента '1'.
Подскажите что за глюк ? Как исправить ?
Верная ошибка Class 'App\Http\Controllers\AddMissed' not found
Попробуй вот это http://komodoide.com/ если не используеш контроль версий (либо используеш внешнюю программу) то покупать IDE не нужно, достаточно Komodo Edit .
Большинство нужного функционала работает с коробки. Нет форматирования кода но решается легко http://www.activestate.com/blog/2009/03 … komodo-ide.
Попробовал случайно - был приятно удивлен (не сочтите за рекламу).
IDE что то среднее между ну уж сильно навороченым штормом (60 % функционала которого не используется ) , и недостаточно функциональным и периодически падающим Sublime, так сказать золотая середина.
+ Как бонус куча приятных тем с коробки и еще пару фишек важных только мне ...
Добрый день.
Сделал все по мануалу https://laravel.ru/docs/v5/bus:
Мой контроллер расширяет Controller отдельно добавлять вроде ничего не нужно...
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Grud\SimpleGridHelper;
use Symfony\Component\Process\Process;
use Symfony\Component\Process\ProcessBuilder;
use App\Models\Television_callback;
use DB, Config, Sentry;
class TelMissedController extends Controller {
public function AddMissed($queue_) {
$this->dispatch(new AddMissed($queue_ , 60*5));
}
}
Команду создал через
artisan php artisan make:command AddMissed
use App\Commands\Command;
use Illuminate\Contracts\Bus\SelfHandling;
class AddMissed extends Command implements SelfHandling {
protected $queue, $time_corect;
/**
* Create a new command instance.
* @return void
*/
public function __construct(Queue $queue, Time_corect $time_corect) {
$this->queue = $queue;
$this->time_corect = $time_corect;
}
/**
* Execute the command.
* @return void
*/
public function handle() {
dd("Test");
}
}
При запуске ошибка
ReflectionException in RouteDependencyResolverTrait.php line 53: Class App\Http\Controllers\Dispatcher does not exist
Где я напортачил ? Подскажи те пож. кто в курсе.
Не катит:
06:25:00-vagrant@homestead:/srv/sites/$
06:25:01-vagrant@homestead:/srv/sites/$ php artisan make:model Models\Television_expects
Model created successfully.
Created Migration: 2015_06_08_092552_create_models_television_expects_table
06:25:55-vagrant@homestead:/srv/sites/$
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class ModelsTelevision_expects extends Model {
//
}
ну чего так все сложно то?
А просто переключать как то в коде можно? Вот везде клас но иногда не часто нужно вернуть в масиве ? Можно както переключить только в одной функции?
Не глобально ?
не работает
$query = \DB::connection($tb['db'])->table($tb['table']);
$query->select('RECORD_ID','call_time','AGENT_ID','PHONE_NUMBER','fio','city','adress','old','male','COMMENTS');
так :
$qq = $query->orderBy('call_time', 'DESC')->get();
$tables = $qq->toArray();
и так :
$tables = $query->orderBy('call_time', 'DESC')->toArray();
B так
$tables = $query->orderBy('call_time', 'DESC')->get()->toArray();
Call to a member function toArray() on array
Мож в пятерке выпилили?
Доброе утро.
Вопрос: возможно ли вернуть запрос к БД в виде масива, а не класа в laravel 5 ?
Поиск дает много вариантов, но все какие то "костыльные", хотелось бы иметь рабочей вариант - иногда надо.
То что я нашел:
$return = $query->orderBy($sidx, $sord)->get();
$return = json_decode(json_encode($return) , true);
$data=array_map(function($item){
return (array) $item;
},DB::table('table_name')->select(.......)->get());
А смысл? Быстрых фрейворков и без Lumen.. Хотелось бы раскрученную штуку чтобы в заказчиков не возникало вопросов: "кто поддерживать будет, если пропадешь?"
Да и под "старичка" наработок то оставалось...
Ситуация ясна... А то я подумал, было, что накосячил, оказывается не я .
Гляньте схожую тему на форуме: https://laravel.ru/forum/viewtopic.php?id=862
дык я и не отрицаю, что включены проверки верификации и тд.
Хотелось бы услышать мысли от сообщества из серии как ускорить если нужно. Куда смотреть.
Добрый день сообщество.
Хочу поднять тему которая, думаю, будет многим интересна. Собственно о скорости работы.
У меня есть несколько проектов сделанных по традиции на codeigniter, собственно от последнего там используется наверное каркас и возможно частично active record, остальное давно вышло за рамки "старичка".
В качестве самообразования решил сделать рефакторинг одного из простеньких проектов на Laravel. На что сразу налетел на скорость ответа - причем она настолько выше что в некоторых местах становится просто не комфортно работать.
В качестве сравнения беру обыкновенный запрос Update в базу Mysql там простенькая табличка на 5 полей. Никаких ключей и ТП.
Забрал с Request, сделал update в табличке.
$idkey = $this->idkey;
$table = $this->table;
$join = $this->join;
$oper = \Request::input('oper');
$id = \Request::input('id');
switch ($oper) {
case 'add':
case 'edit':
$data = array();
$data['name_list'] = \Request::input('name_list');
$data['atems_max'] = \Request::input('atems_max');
$data['table_name'] = \Request::input('table_name');
$data['description_list'] = \Request::input('description_list');
$data['list_state'] = \Request::input('list_state');
\DB::table($table)->where($idkey, $id)->update($data);
Примеры ответов:
laravel http://joxi.ru/DrlNgM8fOaGQ2P
codeigniter http://joxi.ru/vAW4zeJfQbBLrW
290 против 1,2 сек -в 5 раз. Как-то много.
В качестве dev среды использую Homestead. Логирование выключил в dev, на production переключил в .dev. Кеш, сесии - memcached. Может что еще?
Уверен что то, явно делаю не так - прошу помощь сообщества.
Вот это посмотрите
https://github.com/bestmomo/laravel5-example
А зачем тебе get и post запросы для loaddata и странные урлы "lists.edit" лучше "lists/edit" но это н суть
Там посмотри отправляются ли ключ по запросу (сеть)
Jack? благодарю - носом ткнули в ошибку.
Тему можно закрывать проблема была на стороне jqgrid.