kevupton/laravel-package-service-provider

There is no license information available for the latest version (v0.0.5) of this package.

Service provider for laravel to allow for multiple implementations

v0.0.5 2018-03-27 22:32 UTC

This package is auto-updated.

Last update: 2024-11-15 13:13:28 UTC


README

Improved service provider functions for handling cross application code.

Src

<?php
/**
 * Created by PhpStorm.
 * User: kevin
 * Date: 3/12/2017
 * Time: 6:11 PM
 */
namespace Kevupton\LaravelPackageServiceProvider;

use Illuminate\Foundation\AliasLoader;
use Illuminate\Support\ServiceProvider as BaseServiceProvider;

class ServiceProvider extends BaseServiceProvider
{
    /**
     * Registers a configuration
     *
     * @param string $path
     * @param string $name
     */
    protected function registerConfig ($path, $name)
    {
        $this->publishes([__DIR__ . $path => config_path($name)]);
    }

    /**
     * Determines whether this application is an instance of Lumen
     *
     * @return bool
     */
    protected function isLumen ()
    {
        return is_a($this->app, 'Laravel\Lumen\Application');
    }

    /**
     * Determines whether this application is an instance of Laravel
     *
     * @return bool
     */
    protected function isLaravel ()
    {
        return is_a($this->app, 'Illuminate\Foundation\Application');
    }

    /**
     * Register Alias function to register an alias based upon
     * whether they are using lumen or laravel
     *
     * @param string $class
     * @param string $name
     */
    protected function registerAlias ($class, $name)
    {
        if ($this->isLaravel()) {
            AliasLoader::getInstance()->alias($name, $class);
        } elseif ($this->isLumen()) {
            if (!class_exists($name)) {
                class_alias($class, $name);
            }
        }
    }
}