Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#2 Re: Laravel 5.x » Использование кастомных хелперов в темплейтах. » 26.07.2016 02:29:04

won

Скорее всего у вас намеспейс или файлы в неправильном регистре. На винде это не заметно, но в юниксах сразу вылезает.

#3 Re: Laravel 5.x » Актуальность обьявлений » 22.07.2016 21:41:38

won
Cheshirrski пишет:

}%Еще можно сразу ставить дату потери актуальности и показывать объявления у которых дата меньше.

Красивое решение!

#4 Laravel 5.x » Затирание логов » 18.07.2016 15:59:30

won
Ответов: 0

В конфигах стоит 'log' => env('APP_LOG', 'daily'). Логи подтираются раз в 4 дня каким-то макаром. Не подскажите где копать? Есть в ларе где-то это автоудаление. Хотелось бы его выключить на совсем.

#5 Re: Laravel 5.x » Как отправлять почту средствами Laravel используя cron? » 14.07.2016 23:52:12

won

Как вариант можно создать команду https://laravel.ru/docs/v5/artisan#%D0% … 0%B8%D0%BA и положить в планировщик задач https://laravel.ru/docs/v5/scheduling. Что скажут знающие люди о таком подходе? И параллельно вопрос, очереди возможно использовать на обычном хостинге с развернутой ларой без супервизора и тд?

#6 Laravel 5.x » Очередность миграций » 14.05.2016 04:00:20

won
Ответов: 1

Создал миграцию, в какой последовательности отработают миграции. Как менять эту последовательность? Может кто подскажет?

#7 Re: Laravel 5.x » Как установить модульность в Ларавель 5.2 » 14.05.2016 01:55:11

won

Я по долгу работы пишу проекты в разных сферах и на разных к сожалению или счастью языках. Так вот понятие модульности настолько расплывчато, в каждом проекте появляются скорее устои и привычки или за счет икспиренса. Как бы вы не были классы или пакеты - важно только одно. Читабельность и простота и целесообразное потраченное время на разработчку. Чем проще для вас - тем лучше. Через месяц, год можно и свой код не разобрать.

#8 Re: Laravel 5.x » belongsTo » 11.05.2016 10:58:14

won

Насколько я понимаю вам требуется использовать $this->hasMany

#9 Re: Laravel 5.x » Динамические свойства » 08.05.2016 11:29:07

won
Nogard7491 пишет:
won пишет:
php artisan ide-helper:models

После добавления свойства в таблицу. Только почитайте документацию о именовании таблиц или как в модели указать имя таблицы.

так он вроде как для автозаполнения нужен!? с этим проблем нет

Да вы правы. Обьясните зачем вам такой механизм?

#10 Re: Laravel 5.x » Динамические свойства » 06.05.2016 01:56:19

won
php artisan ide-helper:models

После добавления свойства в таблицу. Только почитайте документацию о именовании таблиц или как в модели указать имя таблицы.

#11 Re: Laravel 5.x » Установка Laravel 5 » 13.04.2016 14:05:29

won

Решил

composer global update fxp/composer-asset-plugin --no-plugins

#12 Re: Laravel 5.x » Установка Laravel 5 » 12.04.2016 23:04:36

won

Попробовал поставить. В итоге получил. Кто-то сталкивался? Как решается?

composer create-project --prefer-dist laravel/laravel blog
Installing laravel/laravel (v5.2.29)
  - Installing laravel/laravel (v5.2.29)
    Loading from cache

Created project in blog

                                                                          
  [ReflectionException]                                                   
  Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist  
                                                                          

                                                                               
  [ErrorException]                                                             
  Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRepository  
  ::whatProvides() should be compatible with Composer\Repository\ComposerRepo  
  sitory::whatProvides(Composer\DependencyResolver\Pool $pool, $name, $bypass  
  Filters = false)                                                             
                                                                               

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [--keep-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]

#14 Re: Lumen » Обсуждение зачем нужен люмен и кто-где его использует/планирует » 03.02.2016 01:36:59

won

кастрированное для апи именно то что нужно. давно искал нечто подобное. почему не встала - ну многословным не буду вот

#15 Re: Lumen » Обсуждение зачем нужен люмен и кто-где его использует/планирует » 02.02.2016 20:26:01

won

А вот вы меня заинтересовали, как-то упустил lumen из-виду. Очень часто приходиться писать всякого рода апи. Пойду опробую его на саас одной срм, laravel там просто не поднялся из-за ограничений саас аккаунтов(

#16 Re: Laravel 5.x » Установка пакета http » 31.01.2016 15:26:24

won
duster пишет:

А в app.php в aliases[] у Вас разве нет фасада Cb? Если есть - то конечно вызов через Cb::method() будет работать - не из-за биндинга в сервис провайдере, а из-за фасада/алиаса.

С этим я осознал. Спасибо.

duster пишет:

А в верхнем случае нет ни фасада (в общем-то, класса) с именем HttpClient, ни класса внутри текущего namespace с таким именем - понятно, что неоткуда брать его! smile

$this->app->booting(function () {

            $loader = \Illuminate\Foundation\AliasLoader::getInstance();
            $loader->alias('HttpClient', 'Vinelab\Http\Facades\Client');
        });

А разве этот код не прописывает алиас?

#17 Re: Laravel 5.x » Установка пакета http » 31.01.2016 13:42:24

won
duster пишет:
won пишет:

Что я не понимаю в l5? Ведь фасад по сути скрывает подробности реализации, так зачем мне прямой use на класс клиента?

Если ресолвить (получать) этот класс через "волшебные" методы Laravel (допустим, конструктор как в Вашем примере) - то незачем, и так будет работать.

use App\Package\Intis\Contracts\Sms;
use DateTime;

class IntisSms implements Sms
{

    public function __construct(HttpClient $client)
    {
        
    }
 [ReflectionException]                              
  Class App\Package\Intis\HttpClient does not exist

Так все же получается требуется use? Type-hint применяется для все классов созданных мной, с условием что зарегистрирован как сервис контейнер?

Вот пример, который у меня сработал на ура. И я пытаюсь понять почему не работает в данному случае.

Фасад

namespace App\Cb;


use Illuminate\Support\Facades\Facade;

class Cb extends Facade
{
    protected static function getFacadeAccessor()
    {
        return 'CbConfig';
    }
}

Сам класс

namespace App\Cb;


class Config
{
    private $config = [];

    public function getInstance()
    {
        if(count($this->config) == 0) {
            require(CLIENTBASE_DIR.'/include/config.php');
            $this->config = $config;
        }

        return $this->config;
    }

    /**
     * Возврат полного имени таблицы с данными
     *
     * @param int $tableId айди таблицы из кб
     * @return string
     */
    public function dataTable($tableId) {
        $this->getInstance();
        return $this->config['table_prefix']."data".$tableId;
    }

    /**
     * Возвращает полное имя таблицы пользователей
     *
     * @return string
     */
    public function usersTable() {
        $this->getInstance();
        return $this->config['table_prefix']."users";
    }

}

Провайдер

namespace App\Providers;

use App\Cb\Cb;
use Illuminate\Support\ServiceProvider;

class CbConfigProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        Cb::getInstance();
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton('CbConfig', 'App\Cb\Config');
    }
}

прописал в config/app.php

providers => [
...
 App\Package\Intis\IntisServiceProvider::class,
]

и вызов в контроллере, все ок

dd(Cb::dataTable(310))

#18 Re: Laravel 5.x » Установка пакета http » 31.01.2016 12:38:45

won
duster пишет:

У Вас же идет прямой вызов средствами PHP:

$response = HttpClient::get('http://example.org');

Тут type-hinting от Laravel непричем. PHP будет сам искать класс HttpClient, а ищет по дефолту - в текущем namespace.

Прошу прощения за путаницу. Посмотрел исходники, собственно вопрос к фасадам. В примере пакета указано

It will automatically alias itself as HttpClient so no need to alias it in your app.php, unless you would like to customize it - in that case edit your 'aliases' in app.php adding 'MyHttp' => 'Vinelab\Http\Facades\Client'

и тогда можно использовать как в первом посте

 $response = HttpClient::get('http://example.org');
    // raw content
    $response->content();

Что я не понимаю в l5? Ведь фасад по сути скрывает подробности реализации, так зачем мне прямой use на класс клиента?

#19 Re: Laravel 5.x » Ошибка при migration » 31.01.2016 12:08:39

won
kilowat пишет:
mikhalkevich пишет:

.env ибо его предназначение мне тоже не совсем понятно.

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

Спасибо. Не знал, все не мог понять зачем он нужен и почему коннекты прописывать в двух местах приходилось. А кроме удаление .env файла где-то можно прописать что использовать из config/database.php например? Или работает по принципу файл есть - env, файла нет - из конфига?

#20 Re: Laravel 5.x » Установка пакета http » 31.01.2016 12:01:11

won
duster пишет:

Не хватает 'use' в начале файла. По умолчанию используется текущий namespace, поэтому когда Вы говорите 'HttpClient' - подразумевается App\Console\Commands\HttpClient, а такого класса нет.
Либо сверху правильный use - а ля use Vinelab\Http\HttpClient, либо при создании - полный путь: $response = \Vinelab\Http\HttpClient::get()

В сервис провайдере есть прописаны такие строки:

        public function register()
    {
        $this->app['vinelab.httpclient'] = $this->app->share(function ($app) {
            return new Client();
        });

        $this->app->booting(function () {

            $loader = \Illuminate\Foundation\AliasLoader::getInstance();
            $loader->alias('HttpClient', 'Vinelab\Http\Facades\Client');
        });
    }

Мне казалось, что указав в конструкторе класс, он инжектируется как зависимость или я не верно понимаю?

    public function __construct(HttpClient $client)
    {
        $this->client = $client;
    }

#21 Re: Прочее » Чем Laravel лучше Yii? » 31.01.2016 01:35:24

won

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

#22 Laravel 5.x » Установка пакета http » 30.01.2016 18:01:54

won
Ответов: 9

L5.2
Установил пакет http://packalyst.com/packages/package/vinelab/http через композер.
Прописал в config/app.php

Edit app.php and add 'Vinelab\Http\HttpServiceProvider', to the 'providers' array.

Создал команду и пробую вызвать

 $response = HttpClient::get('http://example.org');
    // raw content
    $response->content();

Получаю

PHP Fatal error:  Class 'App\Console\Commands\HttpClient' not found in /Users/lodar/Works/PhpStorm/miran/modules/nbapi/app/Console/Commands/TestLog.php on line 47
                                               
  [Symfony\Component\Debug\Exception\FatalErrorException]  
  Class 'App\Console\Commands\HttpClient' not found  

Что не так сделал?

#23 Re: Laravel 5.x » Среда разработки для Laravel » 30.01.2016 14:16:30

won
karandashbest пишет:

Привет, есть ли бесплатная среда разработки для Laravel ? что бы подсвечивала код всплывали подсказки функций и т.д. Я знаю что есть PHPStorm но он платный, я видел что используют netbeans я его ставил но что то он  не чего не подсвечивает

Если вы студент, оформите себе подписку по спец программе для студентов и будет вам счастье!

#24 Laravel 5.x » Tagging примеры использования » 30.01.2016 13:47:03

won
Ответов: 2

Не совсем понимаю практическое применение tagging в сервис-контейнерах. Кто может привести пример использования в жизни?

Подвал раздела