shell bypass 403
<?php namespace JoeDixon\Translation; use Illuminate\Filesystem\Filesystem; use Illuminate\Support\ServiceProvider; use JoeDixon\Translation\Console\Commands\AddLanguageCommand; use JoeDixon\Translation\Console\Commands\AddTranslationKeyCommand; use JoeDixon\Translation\Console\Commands\ListLanguagesCommand; use JoeDixon\Translation\Console\Commands\ListMissingTranslationKeys; use JoeDixon\Translation\Console\Commands\SynchroniseMissingTranslationKeys; use JoeDixon\Translation\Console\Commands\SynchroniseTranslationsCommand; use JoeDixon\Translation\Drivers\Translation; class TranslationServiceProvider extends ServiceProvider { /** * Bootstrap the package services. * * @return void */ public function boot() { $this->loadViews(); $this->registerRoutes(); $this->publishConfiguration(); $this->publishAssets(); $this->loadMigrations(); $this->loadTranslations(); $this->registerHelpers(); } /** * Register package bindings in the container. * * @return void */ public function register() { $this->mergeConfiguration(); $this->registerCommands(); $this->registerContainerBindings(); } /** * Load and publish package views. * * @return void */ private function loadViews() { $this->loadViewsFrom(__DIR__.'/../resources/views', 'translation'); $this->publishes([ __DIR__.'/../resources/views' => resource_path('views/vendor/translation'), ]); } /** * Register package routes. * * @return void */ private function registerRoutes() { $this->loadRoutesFrom(__DIR__.'/../routes/web.php'); } /** * Publish package configuration. * * @return void */ private function publishConfiguration() { $this->publishes([ __DIR__.'/../config/translation.php' => config_path('translation.php'), ], 'config'); } /** * Merge package configuration. * * @return void */ private function mergeConfiguration() { $this->mergeConfigFrom(__DIR__.'/../config/translation.php', 'translation'); } /** * Publish package assets. * * @return void */ private function publishAssets() { $this->publishes([ __DIR__.'/../public/assets' => public_path('vendor/translation'), ], 'assets'); } /** * Load package migrations. * * @return void */ private function loadMigrations() { $this->loadMigrationsFrom(__DIR__.'/../database/migrations'); } /** * Load package translations. * * @return void */ private function loadTranslations() { $this->loadTranslationsFrom(__DIR__.'/../resources/lang', 'translation'); $this->publishes([ __DIR__.'/../resources/lang' => resource_path('lang/vendor/translation'), ]); } /** * Register package commands. * * @return void */ private function registerCommands() { if ($this->app->runningInConsole()) { $this->commands([ AddLanguageCommand::class, AddTranslationKeyCommand::class, ListLanguagesCommand::class, ListMissingTranslationKeys::class, SynchroniseMissingTranslationKeys::class, SynchroniseTranslationsCommand::class, ]); } } /** * Register package helper functions. * * @return void */ private function registerHelpers() { require __DIR__.'/../resources/helpers.php'; } /** * Register package bindings in the container. * * @return void */ private function registerContainerBindings() { $this->app->singleton(Scanner::class, function () { $config = $this->app['config']['translation']; return new Scanner(new Filesystem, $config['scan_paths'], $config['translation_methods']); }); $this->app->singleton(Translation::class, function ($app) { return (new TranslationManager($app, $app['config']['translation'], $app->make(Scanner::class)))->resolve(); }); } }