with stub team and player models and migrations and twitter librarymaster
@ -0,0 +1,33 @@ | |||||
APP_NAME=Laravel | |||||
APP_ENV=local | |||||
APP_KEY= | |||||
APP_DEBUG=true | |||||
APP_LOG_LEVEL=debug | |||||
APP_URL=http://localhost | |||||
DB_CONNECTION=mysql | |||||
DB_HOST=127.0.0.1 | |||||
DB_PORT=3306 | |||||
DB_DATABASE=homestead | |||||
DB_USERNAME=homestead | |||||
DB_PASSWORD=secret | |||||
BROADCAST_DRIVER=log | |||||
CACHE_DRIVER=file | |||||
SESSION_DRIVER=file | |||||
QUEUE_DRIVER=sync | |||||
REDIS_HOST=127.0.0.1 | |||||
REDIS_PASSWORD=null | |||||
REDIS_PORT=6379 | |||||
MAIL_DRIVER=smtp | |||||
MAIL_HOST=smtp.mailtrap.io | |||||
MAIL_PORT=2525 | |||||
MAIL_USERNAME=null | |||||
MAIL_PASSWORD=null | |||||
MAIL_ENCRYPTION=null | |||||
PUSHER_APP_ID= | |||||
PUSHER_APP_KEY= | |||||
PUSHER_APP_SECRET= |
@ -0,0 +1,5 @@ | |||||
* text=auto | |||||
*.css linguist-vendored | |||||
*.scss linguist-vendored | |||||
*.js linguist-vendored | |||||
CHANGELOG.md export-ignore |
@ -0,0 +1,11 @@ | |||||
/node_modules | |||||
/public/hot | |||||
/public/storage | |||||
/storage/*.key | |||||
/vendor | |||||
/.idea | |||||
/.vagrant | |||||
Homestead.json | |||||
Homestead.yaml | |||||
npm-debug.log | |||||
.env |
@ -0,0 +1,40 @@ | |||||
<?php | |||||
namespace App\Console; | |||||
use Illuminate\Console\Scheduling\Schedule; | |||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; | |||||
class Kernel extends ConsoleKernel | |||||
{ | |||||
/** | |||||
* The Artisan commands provided by your application. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $commands = [ | |||||
// | |||||
]; | |||||
/** | |||||
* Define the application's command schedule. | |||||
* | |||||
* @param \Illuminate\Console\Scheduling\Schedule $schedule | |||||
* @return void | |||||
*/ | |||||
protected function schedule(Schedule $schedule) | |||||
{ | |||||
// $schedule->command('inspire') | |||||
// ->hourly(); | |||||
} | |||||
/** | |||||
* Register the Closure based commands for the application. | |||||
* | |||||
* @return void | |||||
*/ | |||||
protected function commands() | |||||
{ | |||||
require base_path('routes/console.php'); | |||||
} | |||||
} |
@ -0,0 +1,65 @@ | |||||
<?php | |||||
namespace App\Exceptions; | |||||
use Exception; | |||||
use Illuminate\Auth\AuthenticationException; | |||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; | |||||
class Handler extends ExceptionHandler | |||||
{ | |||||
/** | |||||
* A list of the exception types that should not be reported. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $dontReport = [ | |||||
\Illuminate\Auth\AuthenticationException::class, | |||||
\Illuminate\Auth\Access\AuthorizationException::class, | |||||
\Symfony\Component\HttpKernel\Exception\HttpException::class, | |||||
\Illuminate\Database\Eloquent\ModelNotFoundException::class, | |||||
\Illuminate\Session\TokenMismatchException::class, | |||||
\Illuminate\Validation\ValidationException::class, | |||||
]; | |||||
/** | |||||
* Report or log an exception. | |||||
* | |||||
* This is a great spot to send exceptions to Sentry, Bugsnag, etc. | |||||
* | |||||
* @param \Exception $exception | |||||
* @return void | |||||
*/ | |||||
public function report(Exception $exception) | |||||
{ | |||||
parent::report($exception); | |||||
} | |||||
/** | |||||
* Render an exception into an HTTP response. | |||||
* | |||||
* @param \Illuminate\Http\Request $request | |||||
* @param \Exception $exception | |||||
* @return \Illuminate\Http\Response | |||||
*/ | |||||
public function render($request, Exception $exception) | |||||
{ | |||||
return parent::render($request, $exception); | |||||
} | |||||
/** | |||||
* Convert an authentication exception into an unauthenticated response. | |||||
* | |||||
* @param \Illuminate\Http\Request $request | |||||
* @param \Illuminate\Auth\AuthenticationException $exception | |||||
* @return \Illuminate\Http\Response | |||||
*/ | |||||
protected function unauthenticated($request, AuthenticationException $exception) | |||||
{ | |||||
if ($request->expectsJson()) { | |||||
return response()->json(['error' => 'Unauthenticated.'], 401); | |||||
} | |||||
return redirect()->guest(route('login')); | |||||
} | |||||
} |
@ -0,0 +1,32 @@ | |||||
<?php | |||||
namespace App\Http\Controllers\Auth; | |||||
use App\Http\Controllers\Controller; | |||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails; | |||||
class ForgotPasswordController extends Controller | |||||
{ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Password Reset Controller | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This controller is responsible for handling password reset emails and | |||||
| includes a trait which assists in sending these notifications from | |||||
| your application to your users. Feel free to explore this trait. | |||||
| | |||||
*/ | |||||
use SendsPasswordResetEmails; | |||||
/** | |||||
* Create a new controller instance. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function __construct() | |||||
{ | |||||
$this->middleware('guest'); | |||||
} | |||||
} |
@ -0,0 +1,39 @@ | |||||
<?php | |||||
namespace App\Http\Controllers\Auth; | |||||
use App\Http\Controllers\Controller; | |||||
use Illuminate\Foundation\Auth\AuthenticatesUsers; | |||||
class LoginController extends Controller | |||||
{ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Login Controller | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This controller handles authenticating users for the application and | |||||
| redirecting them to your home screen. The controller uses a trait | |||||
| to conveniently provide its functionality to your applications. | |||||
| | |||||
*/ | |||||
use AuthenticatesUsers; | |||||
/** | |||||
* Where to redirect users after login. | |||||
* | |||||
* @var string | |||||
*/ | |||||
protected $redirectTo = '/home'; | |||||
/** | |||||
* Create a new controller instance. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function __construct() | |||||
{ | |||||
$this->middleware('guest')->except('logout'); | |||||
} | |||||
} |
@ -0,0 +1,71 @@ | |||||
<?php | |||||
namespace App\Http\Controllers\Auth; | |||||
use App\User; | |||||
use App\Http\Controllers\Controller; | |||||
use Illuminate\Support\Facades\Validator; | |||||
use Illuminate\Foundation\Auth\RegistersUsers; | |||||
class RegisterController extends Controller | |||||
{ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Register Controller | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This controller handles the registration of new users as well as their | |||||
| validation and creation. By default this controller uses a trait to | |||||
| provide this functionality without requiring any additional code. | |||||
| | |||||
*/ | |||||
use RegistersUsers; | |||||
/** | |||||
* Where to redirect users after registration. | |||||
* | |||||
* @var string | |||||
*/ | |||||
protected $redirectTo = '/home'; | |||||
/** | |||||
* Create a new controller instance. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function __construct() | |||||
{ | |||||
$this->middleware('guest'); | |||||
} | |||||
/** | |||||
* Get a validator for an incoming registration request. | |||||
* | |||||
* @param array $data | |||||
* @return \Illuminate\Contracts\Validation\Validator | |||||
*/ | |||||
protected function validator(array $data) | |||||
{ | |||||
return Validator::make($data, [ | |||||
'name' => 'required|string|max:255', | |||||
'email' => 'required|string|email|max:255|unique:users', | |||||
'password' => 'required|string|min:6|confirmed', | |||||
]); | |||||
} | |||||
/** | |||||
* Create a new user instance after a valid registration. | |||||
* | |||||
* @param array $data | |||||
* @return User | |||||
*/ | |||||
protected function create(array $data) | |||||
{ | |||||
return User::create([ | |||||
'name' => $data['name'], | |||||
'email' => $data['email'], | |||||
'password' => bcrypt($data['password']), | |||||
]); | |||||
} | |||||
} |
@ -0,0 +1,39 @@ | |||||
<?php | |||||
namespace App\Http\Controllers\Auth; | |||||
use App\Http\Controllers\Controller; | |||||
use Illuminate\Foundation\Auth\ResetsPasswords; | |||||
class ResetPasswordController extends Controller | |||||
{ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Password Reset Controller | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This controller is responsible for handling password reset requests | |||||
| and uses a simple trait to include this behavior. You're free to | |||||
| explore this trait and override any methods you wish to tweak. | |||||
| | |||||
*/ | |||||
use ResetsPasswords; | |||||
/** | |||||
* Where to redirect users after resetting their password. | |||||
* | |||||
* @var string | |||||
*/ | |||||
protected $redirectTo = '/home'; | |||||
/** | |||||
* Create a new controller instance. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function __construct() | |||||
{ | |||||
$this->middleware('guest'); | |||||
} | |||||
} |
@ -0,0 +1,13 @@ | |||||
<?php | |||||
namespace App\Http\Controllers; | |||||
use Illuminate\Foundation\Bus\DispatchesJobs; | |||||
use Illuminate\Routing\Controller as BaseController; | |||||
use Illuminate\Foundation\Validation\ValidatesRequests; | |||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests; | |||||
class Controller extends BaseController | |||||
{ | |||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests; | |||||
} |
@ -0,0 +1,60 @@ | |||||
<?php | |||||
namespace App\Http; | |||||
use Illuminate\Foundation\Http\Kernel as HttpKernel; | |||||
class Kernel extends HttpKernel | |||||
{ | |||||
/** | |||||
* The application's global HTTP middleware stack. | |||||
* | |||||
* These middleware are run during every request to your application. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $middleware = [ | |||||
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, | |||||
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, | |||||
\App\Http\Middleware\TrimStrings::class, | |||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, | |||||
]; | |||||
/** | |||||
* The application's route middleware groups. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $middlewareGroups = [ | |||||
'web' => [ | |||||
\App\Http\Middleware\EncryptCookies::class, | |||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, | |||||
\Illuminate\Session\Middleware\StartSession::class, | |||||
// \Illuminate\Session\Middleware\AuthenticateSession::class, | |||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class, | |||||
\App\Http\Middleware\VerifyCsrfToken::class, | |||||
\Illuminate\Routing\Middleware\SubstituteBindings::class, | |||||
], | |||||
'api' => [ | |||||
'throttle:60,1', | |||||
'bindings', | |||||
], | |||||
]; | |||||
/** | |||||
* The application's route middleware. | |||||
* | |||||
* These middleware may be assigned to groups or used individually. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $routeMiddleware = [ | |||||
'auth' => \Illuminate\Auth\Middleware\Authenticate::class, | |||||
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, | |||||
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, | |||||
'can' => \Illuminate\Auth\Middleware\Authorize::class, | |||||
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, | |||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, | |||||
]; | |||||
} |
@ -0,0 +1,17 @@ | |||||
<?php | |||||
namespace App\Http\Middleware; | |||||
use Illuminate\Cookie\Middleware\EncryptCookies as BaseEncrypter; | |||||
class EncryptCookies extends BaseEncrypter | |||||
{ | |||||
/** | |||||
* The names of the cookies that should not be encrypted. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $except = [ | |||||
// | |||||
]; | |||||
} |
@ -0,0 +1,26 @@ | |||||
<?php | |||||
namespace App\Http\Middleware; | |||||
use Closure; | |||||
use Illuminate\Support\Facades\Auth; | |||||
class RedirectIfAuthenticated | |||||
{ | |||||
/** | |||||
* Handle an incoming request. | |||||
* | |||||
* @param \Illuminate\Http\Request $request | |||||
* @param \Closure $next | |||||
* @param string|null $guard | |||||
* @return mixed | |||||
*/ | |||||
public function handle($request, Closure $next, $guard = null) | |||||
{ | |||||
if (Auth::guard($guard)->check()) { | |||||
return redirect('/home'); | |||||
} | |||||
return $next($request); | |||||
} | |||||
} |
@ -0,0 +1,18 @@ | |||||
<?php | |||||
namespace App\Http\Middleware; | |||||
use Illuminate\Foundation\Http\Middleware\TrimStrings as BaseTrimmer; | |||||
class TrimStrings extends BaseTrimmer | |||||
{ | |||||
/** | |||||
* The names of the attributes that should not be trimmed. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $except = [ | |||||
'password', | |||||
'password_confirmation', | |||||
]; | |||||
} |
@ -0,0 +1,17 @@ | |||||
<?php | |||||
namespace App\Http\Middleware; | |||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; | |||||
class VerifyCsrfToken extends BaseVerifier | |||||
{ | |||||
/** | |||||
* The URIs that should be excluded from CSRF verification. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $except = [ | |||||
// | |||||
]; | |||||
} |
@ -0,0 +1,12 @@ | |||||
<?php | |||||
namespace App; | |||||
use Illuminate\Database\Eloquent\Model; | |||||
class Player extends Model | |||||
{ | |||||
protected $fillable = [ | |||||
'name', 'twitter', 'photo' | |||||
]; | |||||
} |
@ -0,0 +1,28 @@ | |||||
<?php | |||||
namespace App\Providers; | |||||
use Illuminate\Support\ServiceProvider; | |||||
class AppServiceProvider extends ServiceProvider | |||||
{ | |||||
/** | |||||
* Bootstrap any application services. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function boot() | |||||
{ | |||||
// | |||||
} | |||||
/** | |||||
* Register any application services. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function register() | |||||
{ | |||||
// | |||||
} | |||||
} |
@ -0,0 +1,30 @@ | |||||
<?php | |||||
namespace App\Providers; | |||||
use Illuminate\Support\Facades\Gate; | |||||
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; | |||||
class AuthServiceProvider extends ServiceProvider | |||||
{ | |||||
/** | |||||
* The policy mappings for the application. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $policies = [ | |||||
'App\Model' => 'App\Policies\ModelPolicy', | |||||
]; | |||||
/** | |||||
* Register any authentication / authorization services. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function boot() | |||||
{ | |||||
$this->registerPolicies(); | |||||
// | |||||
} | |||||
} |
@ -0,0 +1,21 @@ | |||||
<?php | |||||
namespace App\Providers; | |||||
use Illuminate\Support\ServiceProvider; | |||||
use Illuminate\Support\Facades\Broadcast; | |||||
class BroadcastServiceProvider extends ServiceProvider | |||||
{ | |||||
/** | |||||
* Bootstrap any application services. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function boot() | |||||
{ | |||||
Broadcast::routes(); | |||||
require base_path('routes/channels.php'); | |||||
} | |||||
} |
@ -0,0 +1,32 @@ | |||||
<?php | |||||
namespace App\Providers; | |||||
use Illuminate\Support\Facades\Event; | |||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; | |||||
class EventServiceProvider extends ServiceProvider | |||||
{ | |||||
/** | |||||
* The event listener mappings for the application. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $listen = [ | |||||
'App\Events\Event' => [ | |||||
'App\Listeners\EventListener', | |||||
], | |||||
]; | |||||
/** | |||||
* Register any events for your application. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function boot() | |||||
{ | |||||
parent::boot(); | |||||
// | |||||
} | |||||
} |
@ -0,0 +1,73 @@ | |||||
<?php | |||||
namespace App\Providers; | |||||
use Illuminate\Support\Facades\Route; | |||||
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; | |||||
class RouteServiceProvider extends ServiceProvider | |||||
{ | |||||
/** | |||||
* This namespace is applied to your controller routes. | |||||
* | |||||
* In addition, it is set as the URL generator's root namespace. | |||||
* | |||||
* @var string | |||||
*/ | |||||
protected $namespace = 'App\Http\Controllers'; | |||||
/** | |||||
* Define your route model bindings, pattern filters, etc. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function boot() | |||||
{ | |||||
// | |||||
parent::boot(); | |||||
} | |||||
/** | |||||
* Define the routes for the application. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function map() | |||||
{ | |||||
$this->mapApiRoutes(); | |||||
$this->mapWebRoutes(); | |||||
// | |||||
} | |||||
/** | |||||
* Define the "web" routes for the application. | |||||
* | |||||
* These routes all receive session state, CSRF protection, etc. | |||||
* | |||||
* @return void | |||||
*/ | |||||
protected function mapWebRoutes() | |||||
{ | |||||
Route::middleware('web') | |||||
->namespace($this->namespace) | |||||
->group(base_path('routes/web.php')); | |||||
} | |||||
/** | |||||
* Define the "api" routes for the application. | |||||
* | |||||
* These routes are typically stateless. | |||||
* | |||||
* @return void | |||||
*/ | |||||
protected function mapApiRoutes() | |||||
{ | |||||
Route::prefix('api') | |||||
->middleware('api') | |||||
->namespace($this->namespace) | |||||
->group(base_path('routes/api.php')); | |||||
} | |||||
} |
@ -0,0 +1,12 @@ | |||||
<?php | |||||
namespace App; | |||||
use Illuminate\Database\Eloquent\Model; | |||||
class Team extends Model | |||||
{ | |||||
protected $fillable = [ | |||||
'name', 'color' | |||||
]; | |||||
} |
@ -0,0 +1,29 @@ | |||||
<?php | |||||
namespace App; | |||||
use Illuminate\Notifications\Notifiable; | |||||
use Illuminate\Foundation\Auth\User as Authenticatable; | |||||
class User extends Authenticatable | |||||
{ | |||||
use Notifiable; | |||||
/** | |||||
* The attributes that are mass assignable. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $fillable = [ | |||||
'name', 'email', 'password', | |||||
]; | |||||
/** | |||||
* The attributes that should be hidden for arrays. | |||||
* | |||||
* @var array | |||||
*/ | |||||
protected $hidden = [ | |||||
'password', 'remember_token', | |||||
]; | |||||
} |
@ -0,0 +1,51 @@ | |||||
#!/usr/bin/env php | |||||
<?php | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Register The Auto Loader | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Composer provides a convenient, automatically generated class loader | |||||
| for our application. We just need to utilize it! We'll require it | |||||
| into the script here so that we do not have to worry about the | |||||
| loading of any our classes "manually". Feels great to relax. | |||||
| | |||||
*/ | |||||
require __DIR__.'/bootstrap/autoload.php'; | |||||
$app = require_once __DIR__.'/bootstrap/app.php'; | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Run The Artisan Application | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| When we run the console application, the current CLI command will be | |||||
| executed in this console and the response sent back to a terminal | |||||
| or another output device for the developers. Here goes nothing! | |||||
| | |||||
*/ | |||||
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); | |||||
$status = $kernel->handle( | |||||
$input = new Symfony\Component\Console\Input\ArgvInput, | |||||
new Symfony\Component\Console\Output\ConsoleOutput | |||||
); | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Shutdown The Application | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Once Artisan has finished running, we will fire off the shutdown events | |||||
| so that any final work may be done by the application before we shut | |||||
| down the process. This is the last thing to happen to the request. | |||||
| | |||||
*/ | |||||
$kernel->terminate($input, $status); | |||||
exit($status); |
@ -0,0 +1,55 @@ | |||||
<?php | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Create The Application | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The first thing we will do is create a new Laravel application instance | |||||
| which serves as the "glue" for all the components of Laravel, and is | |||||
| the IoC container for the system binding all of the various parts. | |||||
| | |||||
*/ | |||||
$app = new Illuminate\Foundation\Application( | |||||
realpath(__DIR__.'/../') | |||||
); | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Bind Important Interfaces | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Next, we need to bind some important interfaces into the container so | |||||
| we will be able to resolve them when needed. The kernels serve the | |||||
| incoming requests to this application from both the web and CLI. | |||||
| | |||||
*/ | |||||
$app->singleton( | |||||
Illuminate\Contracts\Http\Kernel::class, | |||||
App\Http\Kernel::class | |||||
); | |||||
$app->singleton( | |||||
Illuminate\Contracts\Console\Kernel::class, | |||||
App\Console\Kernel::class | |||||
); | |||||
$app->singleton( | |||||
Illuminate\Contracts\Debug\ExceptionHandler::class, | |||||
App\Exceptions\Handler::class | |||||
); | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Return The Application | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This script returns the application instance. The instance is given to | |||||
| the calling script so we can separate the building of the instances | |||||
| from the actual running of the application and sending responses. | |||||
| | |||||
*/ | |||||
return $app; |
@ -0,0 +1,17 @@ | |||||
<?php | |||||
define('LARAVEL_START', microtime(true)); | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Register The Composer Auto Loader | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Composer provides a convenient, automatically generated class loader | |||||
| for our application. We just need to utilize it! We'll require it | |||||
| into the script here so we do not have to manually load any of | |||||
| our application's PHP classes. It just feels great to relax. | |||||
| | |||||
*/ | |||||
require __DIR__.'/../vendor/autoload.php'; |
@ -0,0 +1,2 @@ | |||||
* | |||||
!.gitignore |
@ -0,0 +1,52 @@ | |||||
{ | |||||
"name": "laravel/laravel", | |||||
"description": "The Laravel Framework.", | |||||
"keywords": ["framework", "laravel"], | |||||
"license": "MIT", | |||||
"type": "project", | |||||
"require": { | |||||
"php": ">=5.6.4", | |||||
"laravel/framework": "5.4.*", | |||||
"laravel/tinker": "~1.0", | |||||
"thujohn/twitter": "^2.2" | |||||
}, | |||||
"require-dev": { | |||||
"fzaninotto/faker": "~1.4", | |||||
"mockery/mockery": "0.9.*", | |||||
"phpunit/phpunit": "~5.7" | |||||
}, | |||||
"autoload": { | |||||
"classmap": [ | |||||
"database" | |||||
], | |||||
"psr-4": { | |||||
"App\\": "app/" | |||||
} | |||||
}, | |||||
"autoload-dev": { | |||||
"psr-4": { | |||||
"Tests\\": "tests/" | |||||
} | |||||
}, | |||||
"scripts": { | |||||
"post-root-package-install": [ | |||||
"php -r \"file_exists('.env') || copy('.env.example', '.env');\"" | |||||
], | |||||
"post-create-project-cmd": [ | |||||
"php artisan key:generate" | |||||
], | |||||
"post-install-cmd": [ | |||||
"Illuminate\\Foundation\\ComposerScripts::postInstall", | |||||
"php artisan optimize" | |||||
], | |||||
"post-update-cmd": [ | |||||
"Illuminate\\Foundation\\ComposerScripts::postUpdate", | |||||
"php artisan optimize" | |||||
] | |||||
}, | |||||
"config": { | |||||
"preferred-install": "dist", | |||||
"sort-packages": true, | |||||
"optimize-autoloader": true | |||||
} | |||||
} |
@ -0,0 +1,233 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Application Name | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This value is the name of your application. This value is used when the | |||||
| framework needs to place the application's name in a notification or | |||||
| any other location as required by the application or its packages. | |||||
*/ | |||||
'name' => env('APP_NAME', 'Laravel'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Application Environment | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This value determines the "environment" your application is currently | |||||
| running in. This may determine how you prefer to configure various | |||||
| services your application utilizes. Set this in your ".env" file. | |||||
| | |||||
*/ | |||||
'env' => env('APP_ENV', 'production'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Application Debug Mode | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| When your application is in debug mode, detailed error messages with | |||||
| stack traces will be shown on every error that occurs within your | |||||
| application. If disabled, a simple generic error page is shown. | |||||
| | |||||
*/ | |||||
'debug' => env('APP_DEBUG', false), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Application URL | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This URL is used by the console to properly generate URLs when using | |||||
| the Artisan command line tool. You should set this to the root of | |||||
| your application so that it is used when running Artisan tasks. | |||||
| | |||||
*/ | |||||
'url' => env('APP_URL', 'http://localhost'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Application Timezone | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may specify the default timezone for your application, which | |||||
| will be used by the PHP date and date-time functions. We have gone | |||||
| ahead and set this to a sensible default for you out of the box. | |||||
| | |||||
*/ | |||||
'timezone' => 'UTC', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Application Locale Configuration | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The application locale determines the default locale that will be used | |||||
| by the translation service provider. You are free to set this value | |||||
| to any of the locales which will be supported by the application. | |||||
| | |||||
*/ | |||||
'locale' => 'en', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Application Fallback Locale | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The fallback locale determines the locale to use when the current one | |||||
| is not available. You may change the value to correspond to any of | |||||
| the language folders that are provided through your application. | |||||
| | |||||
*/ | |||||
'fallback_locale' => 'en', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Encryption Key | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This key is used by the Illuminate encrypter service and should be set | |||||
| to a random, 32 character string, otherwise these encrypted strings | |||||
| will not be safe. Please do this before deploying an application! | |||||
| | |||||
*/ | |||||
'key' => env('APP_KEY'), | |||||
'cipher' => 'AES-256-CBC', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Logging Configuration | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may configure the log settings for your application. Out of | |||||
| the box, Laravel uses the Monolog PHP logging library. This gives | |||||
| you a variety of powerful log handlers / formatters to utilize. | |||||
| | |||||
| Available Settings: "single", "daily", "syslog", "errorlog" | |||||
| | |||||
*/ | |||||
'log' => env('APP_LOG', 'single'), | |||||
'log_level' => env('APP_LOG_LEVEL', 'debug'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Autoloaded Service Providers | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The service providers listed here will be automatically loaded on the | |||||
| request to your application. Feel free to add your own services to | |||||
| this array to grant expanded functionality to your applications. | |||||
| | |||||
*/ | |||||
'providers' => [ | |||||
/* | |||||
* Laravel Framework Service Providers... | |||||
*/ | |||||
Illuminate\Auth\AuthServiceProvider::class, | |||||
Illuminate\Broadcasting\BroadcastServiceProvider::class, | |||||
Illuminate\Bus\BusServiceProvider::class, | |||||
Illuminate\Cache\CacheServiceProvider::class, | |||||
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, | |||||
Illuminate\Cookie\CookieServiceProvider::class, | |||||
Illuminate\Database\DatabaseServiceProvider::class, | |||||
Illuminate\Encryption\EncryptionServiceProvider::class, | |||||
Illuminate\Filesystem\FilesystemServiceProvider::class, | |||||
Illuminate\Foundation\Providers\FoundationServiceProvider::class, | |||||
Illuminate\Hashing\HashServiceProvider::class, | |||||
Illuminate\Mail\MailServiceProvider::class, | |||||
Illuminate\Notifications\NotificationServiceProvider::class, | |||||
Illuminate\Pagination\PaginationServiceProvider::class, | |||||
Illuminate\Pipeline\PipelineServiceProvider::class, | |||||
Illuminate\Queue\QueueServiceProvider::class, | |||||
Illuminate\Redis\RedisServiceProvider::class, | |||||
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, | |||||
Illuminate\Session\SessionServiceProvider::class, | |||||
Illuminate\Translation\TranslationServiceProvider::class, | |||||
Illuminate\Validation\ValidationServiceProvider::class, | |||||
Illuminate\View\ViewServiceProvider::class, | |||||
/* | |||||
* Package Service Providers... | |||||
*/ | |||||
Laravel\Tinker\TinkerServiceProvider::class, | |||||
/* | |||||
* Application Service Providers... | |||||
*/ | |||||
App\Providers\AppServiceProvider::class, | |||||
App\Providers\AuthServiceProvider::class, | |||||
// App\Providers\BroadcastServiceProvider::class, | |||||
App\Providers\EventServiceProvider::class, | |||||
App\Providers\RouteServiceProvider::class, | |||||
Thujohn\Twitter\TwitterServiceProvider::class, | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Class Aliases | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This array of class aliases will be registered when this application | |||||
| is started. However, feel free to register as many as you wish as | |||||
| the aliases are "lazy" loaded so they don't hinder performance. | |||||
| | |||||
*/ | |||||
'aliases' => [ | |||||
'App' => Illuminate\Support\Facades\App::class, | |||||
'Artisan' => Illuminate\Support\Facades\Artisan::class, | |||||
'Auth' => Illuminate\Support\Facades\Auth::class, | |||||
'Blade' => Illuminate\Support\Facades\Blade::class, | |||||
'Broadcast' => Illuminate\Support\Facades\Broadcast::class, | |||||
'Bus' => Illuminate\Support\Facades\Bus::class, | |||||
'Cache' => Illuminate\Support\Facades\Cache::class, | |||||
'Config' => Illuminate\Support\Facades\Config::class, | |||||
'Cookie' => Illuminate\Support\Facades\Cookie::class, | |||||
'Crypt' => Illuminate\Support\Facades\Crypt::class, | |||||
'DB' => Illuminate\Support\Facades\DB::class, | |||||
'Eloquent' => Illuminate\Database\Eloquent\Model::class, | |||||
'Event' => Illuminate\Support\Facades\Event::class, | |||||
'File' => Illuminate\Support\Facades\File::class, | |||||
'Gate' => Illuminate\Support\Facades\Gate::class, | |||||
'Hash' => Illuminate\Support\Facades\Hash::class, | |||||
'Lang' => Illuminate\Support\Facades\Lang::class, | |||||
'Log' => Illuminate\Support\Facades\Log::class, | |||||
'Mail' => Illuminate\Support\Facades\Mail::class, | |||||
'Notification' => Illuminate\Support\Facades\Notification::class, | |||||
'Password' => Illuminate\Support\Facades\Password::class, | |||||
'Queue' => Illuminate\Support\Facades\Queue::class, | |||||
'Redirect' => Illuminate\Support\Facades\Redirect::class, | |||||
'Redis' => Illuminate\Support\Facades\Redis::class, | |||||
'Request' => Illuminate\Support\Facades\Request::class, | |||||
'Response' => Illuminate\Support\Facades\Response::class, | |||||
'Route' => Illuminate\Support\Facades\Route::class, | |||||
'Schema' => Illuminate\Support\Facades\Schema::class, | |||||
'Session' => Illuminate\Support\Facades\Session::class, | |||||
'Storage' => Illuminate\Support\Facades\Storage::class, | |||||
'URL' => Illuminate\Support\Facades\URL::class, | |||||
'Validator' => Illuminate\Support\Facades\Validator::class, | |||||
'View' => Illuminate\Support\Facades\View::class, | |||||
'Twitter' => Thujohn\Twitter\Facades\Twitter::class, | |||||
], | |||||
]; |
@ -0,0 +1,102 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Authentication Defaults | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This option controls the default authentication "guard" and password | |||||
| reset options for your application. You may change these defaults | |||||
| as required, but they're a perfect start for most applications. | |||||
| | |||||
*/ | |||||
'defaults' => [ | |||||
'guard' => 'web', | |||||
'passwords' => 'users', | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Authentication Guards | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Next, you may define every authentication guard for your application. | |||||
| Of course, a great default configuration has been defined for you | |||||
| here which uses session storage and the Eloquent user provider. | |||||
| | |||||
| All authentication drivers have a user provider. This defines how the | |||||
| users are actually retrieved out of your database or other storage | |||||
| mechanisms used by this application to persist your user's data. | |||||
| | |||||
| Supported: "session", "token" | |||||
| | |||||
*/ | |||||
'guards' => [ | |||||
'web' => [ | |||||
'driver' => 'session', | |||||
'provider' => 'users', | |||||
], | |||||
'api' => [ | |||||
'driver' => 'token', | |||||
'provider' => 'users', | |||||
], | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| User Providers | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| All authentication drivers have a user provider. This defines how the | |||||
| users are actually retrieved out of your database or other storage | |||||
| mechanisms used by this application to persist your user's data. | |||||
| | |||||
| If you have multiple user tables or models you may configure multiple | |||||
| sources which represent each model / table. These sources may then | |||||
| be assigned to any extra authentication guards you have defined. | |||||
| | |||||
| Supported: "database", "eloquent" | |||||
| | |||||
*/ | |||||
'providers' => [ | |||||
'users' => [ | |||||
'driver' => 'eloquent', | |||||
'model' => App\User::class, | |||||
], | |||||
// 'users' => [ | |||||
// 'driver' => 'database', | |||||
// 'table' => 'users', | |||||
// ], | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Resetting Passwords | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| You may specify multiple password reset configurations if you have more | |||||
| than one user table or model in the application and you want to have | |||||
| separate password reset settings based on the specific user types. | |||||
| | |||||
| The expire time is the number of minutes that the reset token should be | |||||
| considered valid. This security feature keeps tokens short-lived so | |||||
| they have less time to be guessed. You may change this as needed. | |||||
| | |||||
*/ | |||||
'passwords' => [ | |||||
'users' => [ | |||||
'provider' => 'users', | |||||
'table' => 'password_resets', | |||||
'expire' => 60, | |||||
], | |||||
], | |||||
]; |
@ -0,0 +1,58 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Default Broadcaster | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This option controls the default broadcaster that will be used by the | |||||
| framework when an event needs to be broadcast. You may set this to | |||||
| any of the connections defined in the "connections" array below. | |||||
| | |||||
| Supported: "pusher", "redis", "log", "null" | |||||
| | |||||
*/ | |||||
'default' => env('BROADCAST_DRIVER', 'null'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Broadcast Connections | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may define all of the broadcast connections that will be used | |||||
| to broadcast events to other systems or over websockets. Samples of | |||||
| each available type of connection are provided inside this array. | |||||
| | |||||
*/ | |||||
'connections' => [ | |||||
'pusher' => [ | |||||
'driver' => 'pusher', | |||||
'key' => env('PUSHER_APP_KEY'), | |||||
'secret' => env('PUSHER_APP_SECRET'), | |||||
'app_id' => env('PUSHER_APP_ID'), | |||||
'options' => [ | |||||
// | |||||
], | |||||
], | |||||
'redis' => [ | |||||
'driver' => 'redis', | |||||
'connection' => 'default', | |||||
], | |||||
'log' => [ | |||||
'driver' => 'log', | |||||
], | |||||
'null' => [ | |||||
'driver' => 'null', | |||||
], | |||||
], | |||||
]; |
@ -0,0 +1,91 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Default Cache Store | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This option controls the default cache connection that gets used while | |||||
| using this caching library. This connection is used when another is | |||||
| not explicitly specified when executing a given caching function. | |||||
| | |||||
| Supported: "apc", "array", "database", "file", "memcached", "redis" | |||||
| | |||||
*/ | |||||
'default' => env('CACHE_DRIVER', 'file'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Cache Stores | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may define all of the cache "stores" for your application as | |||||
| well as their drivers. You may even define multiple stores for the | |||||
| same cache driver to group types of items stored in your caches. | |||||
| | |||||
*/ | |||||
'stores' => [ | |||||
'apc' => [ | |||||
'driver' => 'apc', | |||||
], | |||||
'array' => [ | |||||
'driver' => 'array', | |||||
], | |||||
'database' => [ | |||||
'driver' => 'database', | |||||
'table' => 'cache', | |||||
'connection' => null, | |||||
], | |||||
'file' => [ | |||||
'driver' => 'file', | |||||
'path' => storage_path('framework/cache/data'), | |||||
], | |||||
'memcached' => [ | |||||
'driver' => 'memcached', | |||||
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), | |||||
'sasl' => [ | |||||
env('MEMCACHED_USERNAME'), | |||||
env('MEMCACHED_PASSWORD'), | |||||
], | |||||
'options' => [ | |||||
// Memcached::OPT_CONNECT_TIMEOUT => 2000, | |||||
], | |||||
'servers' => [ | |||||
[ | |||||
'host' => env('MEMCACHED_HOST', '127.0.0.1'), | |||||
'port' => env('MEMCACHED_PORT', 11211), | |||||
'weight' => 100, | |||||
], | |||||
], | |||||
], | |||||
'redis' => [ | |||||
'driver' => 'redis', | |||||
'connection' => 'default', | |||||
], | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Cache Key Prefix | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| When utilizing a RAM based store such as APC or Memcached, there might | |||||
| be other applications utilizing the same cache. So, we'll specify a | |||||
| value to get prefixed to all our keys so we can avoid collisions. | |||||
| | |||||
*/ | |||||
'prefix' => 'laravel', | |||||
]; |
@ -0,0 +1,120 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Default Database Connection Name | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may specify which of the database connections below you wish | |||||
| to use as your default connection for all database work. Of course | |||||
| you may use many connections at once using the Database library. | |||||
| | |||||
*/ | |||||
'default' => env('DB_CONNECTION', 'mysql'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Database Connections | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here are each of the database connections setup for your application. | |||||
| Of course, examples of configuring each database platform that is | |||||
| supported by Laravel is shown below to make development simple. | |||||
| | |||||
| | |||||
| All database work in Laravel is done through the PHP PDO facilities | |||||
| so make sure you have the driver for your particular database of | |||||
| choice installed on your machine before you begin development. | |||||
| | |||||
*/ | |||||
'connections' => [ | |||||
'sqlite' => [ | |||||
'driver' => 'sqlite', | |||||
'database' => env('DB_DATABASE', database_path('database.sqlite')), | |||||
'prefix' => '', | |||||
], | |||||
'mysql' => [ | |||||
'driver' => 'mysql', | |||||
'host' => env('DB_HOST', '127.0.0.1'), | |||||
'port' => env('DB_PORT', '3306'), | |||||
'database' => env('DB_DATABASE', 'forge'), | |||||
'username' => env('DB_USERNAME', 'forge'), | |||||
'password' => env('DB_PASSWORD', ''), | |||||
'unix_socket' => env('DB_SOCKET', ''), | |||||
'charset' => 'utf8mb4', | |||||
'collation' => 'utf8mb4_unicode_ci', | |||||
'prefix' => '', | |||||
'strict' => true, | |||||
'engine' => null, | |||||
], | |||||
'pgsql' => [ | |||||
'driver' => 'pgsql', | |||||
'host' => env('DB_HOST', '127.0.0.1'), | |||||
'port' => env('DB_PORT', '5432'), | |||||
'database' => env('DB_DATABASE', 'forge'), | |||||
'username' => env('DB_USERNAME', 'forge'), | |||||
'password' => env('DB_PASSWORD', ''), | |||||
'charset' => 'utf8', | |||||
'prefix' => '', | |||||
'schema' => 'public', | |||||
'sslmode' => 'prefer', | |||||
], | |||||
'sqlsrv' => [ | |||||
'driver' => 'sqlsrv', | |||||
'host' => env('DB_HOST', 'localhost'), | |||||
'port' => env('DB_PORT', '1433'), | |||||
'database' => env('DB_DATABASE', 'forge'), | |||||
'username' => env('DB_USERNAME', 'forge'), | |||||
'password' => env('DB_PASSWORD', ''), | |||||
'charset' => 'utf8', | |||||
'prefix' => '', | |||||
], | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Migration Repository Table | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This table keeps track of all the migrations that have already run for | |||||
| your application. Using this information, we can determine which of | |||||
| the migrations on disk haven't actually been run in the database. | |||||
| | |||||
*/ | |||||
'migrations' => 'migrations', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Redis Databases | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Redis is an open source, fast, and advanced key-value store that also | |||||
| provides a richer set of commands than a typical key-value systems | |||||
| such as APC or Memcached. Laravel makes it easy to dig right in. | |||||
| | |||||
*/ | |||||
'redis' => [ | |||||
'client' => 'predis', | |||||
'default' => [ | |||||
'host' => env('REDIS_HOST', '127.0.0.1'), | |||||
'password' => env('REDIS_PASSWORD', null), | |||||
'port' => env('REDIS_PORT', 6379), | |||||
'database' => 0, | |||||
], | |||||
], | |||||
]; |
@ -0,0 +1,68 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Default Filesystem Disk | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may specify the default filesystem disk that should be used | |||||
| by the framework. The "local" disk, as well as a variety of cloud | |||||
| based disks are available to your application. Just store away! | |||||
| | |||||
*/ | |||||
'default' => env('FILESYSTEM_DRIVER', 'local'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Default Cloud Filesystem Disk | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Many applications store files both locally and in the cloud. For this | |||||
| reason, you may specify a default "cloud" driver here. This driver | |||||
| will be bound as the Cloud disk implementation in the container. | |||||
| | |||||
*/ | |||||
'cloud' => env('FILESYSTEM_CLOUD', 's3'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Filesystem Disks | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may configure as many filesystem "disks" as you wish, and you | |||||
| may even configure multiple disks of the same driver. Defaults have | |||||
| been setup for each driver as an example of the required options. | |||||
| | |||||
| Supported Drivers: "local", "ftp", "s3", "rackspace" | |||||
| | |||||
*/ | |||||
'disks' => [ | |||||
'local' => [ | |||||
'driver' => 'local', | |||||
'root' => storage_path('app'), | |||||
], | |||||
'public' => [ | |||||
'driver' => 'local', | |||||
'root' => storage_path('app/public'), | |||||
'url' => env('APP_URL').'/storage', | |||||
'visibility' => 'public', | |||||
], | |||||
's3' => [ | |||||
'driver' => 's3', | |||||
'key' => env('AWS_KEY'), | |||||
'secret' => env('AWS_SECRET'), | |||||
'region' => env('AWS_REGION'), | |||||
'bucket' => env('AWS_BUCKET'), | |||||
], | |||||
], | |||||
]; |
@ -0,0 +1,123 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Mail Driver | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Laravel supports both SMTP and PHP's "mail" function as drivers for the | |||||
| sending of e-mail. You may specify which one you're using throughout | |||||
| your application here. By default, Laravel is setup for SMTP mail. | |||||
| | |||||
| Supported: "smtp", "sendmail", "mailgun", "mandrill", "ses", | |||||
| "sparkpost", "log", "array" | |||||
| | |||||
*/ | |||||
'driver' => env('MAIL_DRIVER', 'smtp'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| SMTP Host Address | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may provide the host address of the SMTP server used by your | |||||
| applications. A default option is provided that is compatible with | |||||
| the Mailgun mail service which will provide reliable deliveries. | |||||
| | |||||
*/ | |||||
'host' => env('MAIL_HOST', 'smtp.mailgun.org'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| SMTP Host Port | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This is the SMTP port used by your application to deliver e-mails to | |||||
| users of the application. Like the host we have set this value to | |||||
| stay compatible with the Mailgun e-mail application by default. | |||||
| | |||||
*/ | |||||
'port' => env('MAIL_PORT', 587), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Global "From" Address | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| You may wish for all e-mails sent by your application to be sent from | |||||
| the same address. Here, you may specify a name and address that is | |||||
| used globally for all e-mails that are sent by your application. | |||||
| | |||||
*/ | |||||
'from' => [ | |||||
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), | |||||
'name' => env('MAIL_FROM_NAME', 'Example'), | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| E-Mail Encryption Protocol | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may specify the encryption protocol that should be used when | |||||
| the application send e-mail messages. A sensible default using the | |||||
| transport layer security protocol should provide great security. | |||||
| | |||||
*/ | |||||
'encryption' => env('MAIL_ENCRYPTION', 'tls'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| SMTP Server Username | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| If your SMTP server requires a username for authentication, you should | |||||
| set it here. This will get used to authenticate with your server on | |||||
| connection. You may also set the "password" value below this one. | |||||
| | |||||
*/ | |||||
'username' => env('MAIL_USERNAME'), | |||||
'password' => env('MAIL_PASSWORD'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Sendmail System Path | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| When using the "sendmail" driver to send e-mails, we will need to know | |||||
| the path to where Sendmail lives on this server. A default path has | |||||
| been provided here, which will work well on most of your systems. | |||||
| | |||||
*/ | |||||
'sendmail' => '/usr/sbin/sendmail -bs', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Markdown Mail Settings | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| If you are using Markdown based email rendering, you may configure your | |||||
| theme and component paths here, allowing you to customize the design | |||||
| of the emails. Or, you may simply stick with the Laravel defaults! | |||||
| | |||||
*/ | |||||
'markdown' => [ | |||||
'theme' => 'default', | |||||
'paths' => [ | |||||
resource_path('views/vendor/mail'), | |||||
], | |||||
], | |||||
]; |
@ -0,0 +1,85 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Default Queue Driver | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Laravel's queue API supports an assortment of back-ends via a single | |||||
| API, giving you convenient access to each back-end using the same | |||||
| syntax for each one. Here you may set the default queue driver. | |||||
| | |||||
| Supported: "sync", "database", "beanstalkd", "sqs", "redis", "null" | |||||
| | |||||
*/ | |||||
'default' => env('QUEUE_DRIVER', 'sync'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Queue Connections | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may configure the connection information for each server that | |||||
| is used by your application. A default configuration has been added | |||||
| for each back-end shipped with Laravel. You are free to add more. | |||||
| | |||||
*/ | |||||
'connections' => [ | |||||
'sync' => [ | |||||
'driver' => 'sync', | |||||
], | |||||
'database' => [ | |||||
'driver' => 'database', | |||||
'table' => 'jobs', | |||||
'queue' => 'default', | |||||
'retry_after' => 90, | |||||
], | |||||
'beanstalkd' => [ | |||||
'driver' => 'beanstalkd', | |||||
'host' => 'localhost', | |||||
'queue' => 'default', | |||||
'retry_after' => 90, | |||||
], | |||||
'sqs' => [ | |||||
'driver' => 'sqs', | |||||
'key' => 'your-public-key', | |||||
'secret' => 'your-secret-key', | |||||
'prefix' => 'https://sqs.us-east-1.amazonaws.com/your-account-id', | |||||
'queue' => 'your-queue-name', | |||||
'region' => 'us-east-1', | |||||
], | |||||
'redis' => [ | |||||
'driver' => 'redis', | |||||
'connection' => 'default', | |||||
'queue' => 'default', | |||||
'retry_after' => 90, | |||||
], | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Failed Queue Jobs | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| These options configure the behavior of failed queue job logging so you | |||||
| can control which database and table are used to store the jobs that | |||||
| have failed. You may change them to any database / table you wish. | |||||
| | |||||
*/ | |||||
'failed' => [ | |||||
'database' => env('DB_CONNECTION', 'mysql'), | |||||
'table' => 'failed_jobs', | |||||
], | |||||
]; |
@ -0,0 +1,38 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Third Party Services | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This file is for storing the credentials for third party services such | |||||
| as Stripe, Mailgun, SparkPost and others. This file provides a sane | |||||
| default location for this type of information, allowing packages | |||||
| to have a conventional place to find your various credentials. | |||||
| | |||||
*/ | |||||
'mailgun' => [ | |||||
'domain' => env('MAILGUN_DOMAIN'), | |||||
'secret' => env('MAILGUN_SECRET'), | |||||
], | |||||
'ses' => [ | |||||
'key' => env('SES_KEY'), | |||||
'secret' => env('SES_SECRET'), | |||||
'region' => 'us-east-1', | |||||
], | |||||
'sparkpost' => [ | |||||
'secret' => env('SPARKPOST_SECRET'), | |||||
], | |||||
'stripe' => [ | |||||
'model' => App\User::class, | |||||
'key' => env('STRIPE_KEY'), | |||||
'secret' => env('STRIPE_SECRET'), | |||||
], | |||||
]; |
@ -0,0 +1,179 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Default Session Driver | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This option controls the default session "driver" that will be used on | |||||
| requests. By default, we will use the lightweight native driver but | |||||
| you may specify any of the other wonderful drivers provided here. | |||||
| | |||||
| Supported: "file", "cookie", "database", "apc", | |||||
| "memcached", "redis", "array" | |||||
| | |||||
*/ | |||||
'driver' => env('SESSION_DRIVER', 'file'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session Lifetime | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may specify the number of minutes that you wish the session | |||||
| to be allowed to remain idle before it expires. If you want them | |||||
| to immediately expire on the browser closing, set that option. | |||||
| | |||||
*/ | |||||
'lifetime' => 120, | |||||
'expire_on_close' => false, | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session Encryption | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This option allows you to easily specify that all of your session data | |||||
| should be encrypted before it is stored. All encryption will be run | |||||
| automatically by Laravel and you can use the Session like normal. | |||||
| | |||||
*/ | |||||
'encrypt' => false, | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session File Location | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| When using the native session driver, we need a location where session | |||||
| files may be stored. A default has been set for you but a different | |||||
| location may be specified. This is only needed for file sessions. | |||||
| | |||||
*/ | |||||
'files' => storage_path('framework/sessions'), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session Database Connection | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| When using the "database" or "redis" session drivers, you may specify a | |||||
| connection that should be used to manage these sessions. This should | |||||
| correspond to a connection in your database configuration options. | |||||
| | |||||
*/ | |||||
'connection' => null, | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session Database Table | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| When using the "database" session driver, you may specify the table we | |||||
| should use to manage the sessions. Of course, a sensible default is | |||||
| provided for you; however, you are free to change this as needed. | |||||
| | |||||
*/ | |||||
'table' => 'sessions', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session Cache Store | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| When using the "apc" or "memcached" session drivers, you may specify a | |||||
| cache store that should be used for these sessions. This value must | |||||
| correspond with one of the application's configured cache stores. | |||||
| | |||||
*/ | |||||
'store' => null, | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session Sweeping Lottery | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Some session drivers must manually sweep their storage location to get | |||||
| rid of old sessions from storage. Here are the chances that it will | |||||
| happen on a given request. By default, the odds are 2 out of 100. | |||||
| | |||||
*/ | |||||
'lottery' => [2, 100], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session Cookie Name | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may change the name of the cookie used to identify a session | |||||
| instance by ID. The name specified here will get used every time a | |||||
| new session cookie is created by the framework for every driver. | |||||
| | |||||
*/ | |||||
'cookie' => 'laravel_session', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session Cookie Path | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The session cookie path determines the path for which the cookie will | |||||
| be regarded as available. Typically, this will be the root path of | |||||
| your application but you are free to change this when necessary. | |||||
| | |||||
*/ | |||||
'path' => '/', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Session Cookie Domain | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may change the domain of the cookie used to identify a session | |||||
| in your application. This will determine which domains the cookie is | |||||
| available to in your application. A sensible default has been set. | |||||
| | |||||
*/ | |||||
'domain' => env('SESSION_DOMAIN', null), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| HTTPS Only Cookies | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| By setting this option to true, session cookies will only be sent back | |||||
| to the server if the browser has a HTTPS connection. This will keep | |||||
| the cookie from being sent to you if it can not be done securely. | |||||
| | |||||
*/ | |||||
'secure' => env('SESSION_SECURE_COOKIE', false), | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| HTTP Access Only | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Setting this value to true will prevent JavaScript from accessing the | |||||
| value of the cookie and the cookie will only be accessible through | |||||
| the HTTP protocol. You are free to modify this option if needed. | |||||
| | |||||
*/ | |||||
'http_only' => true, | |||||
]; |
@ -0,0 +1,21 @@ | |||||
<?php | |||||
// You can find the keys here : https://apps.twitter.com/ | |||||
return [ | |||||
'debug' => function_exists('env') ? env('APP_DEBUG', false) : false, | |||||
'API_URL' => 'api.twitter.com', | |||||
'UPLOAD_URL' => 'upload.twitter.com', | |||||
'API_VERSION' => '1.1', | |||||
'AUTHENTICATE_URL' => 'https://api.twitter.com/oauth/authenticate', | |||||
'AUTHORIZE_URL' => 'https://api.twitter.com/oauth/authorize', | |||||
'ACCESS_TOKEN_URL' => 'https://api.twitter.com/oauth/access_token', | |||||
'REQUEST_TOKEN_URL' => 'https://api.twitter.com/oauth/request_token', | |||||
'USE_SSL' => true, | |||||
'CONSUMER_KEY' => function_exists('env') ? env('TWITTER_CONSUMER_KEY', '') : '', | |||||
'CONSUMER_SECRET' => function_exists('env') ? env('TWITTER_CONSUMER_SECRET', '') : '', | |||||
'ACCESS_TOKEN' => function_exists('env') ? env('TWITTER_ACCESS_TOKEN', '') : '', | |||||
'ACCESS_TOKEN_SECRET' => function_exists('env') ? env('TWITTER_ACCESS_TOKEN_SECRET', '') : '', | |||||
]; |
@ -0,0 +1,33 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| View Storage Paths | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Most templating systems load templates from disk. Here you may specify | |||||
| an array of paths that should be checked for your views. Of course | |||||
| the usual Laravel view path has already been registered for you. | |||||
| | |||||
*/ | |||||
'paths' => [ | |||||
resource_path('views'), | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Compiled View Path | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This option determines where all the compiled Blade templates will be | |||||
| stored for your application. Typically, this is within the storage | |||||
| directory. However, as usual, you are free to change this value. | |||||
| | |||||
*/ | |||||
'compiled' => realpath(storage_path('framework/views')), | |||||
]; |
@ -0,0 +1 @@ | |||||
*.sqlite |
@ -0,0 +1,24 @@ | |||||
<?php | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Model Factories | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may define all of your model factories. Model factories give | |||||
| you a convenient way to create models for testing and seeding your | |||||
| database. Just tell the factory how a default model should look. | |||||
| | |||||
*/ | |||||
/** @var \Illuminate\Database\Eloquent\Factory $factory */ | |||||
$factory->define(App\User::class, function (Faker\Generator $faker) { | |||||
static $password; | |||||
return [ | |||||
'name' => $faker->name, | |||||
'email' => $faker->unique()->safeEmail, | |||||
'password' => $password ?: $password = bcrypt('secret'), | |||||
'remember_token' => str_random(10), | |||||
]; | |||||
}); |
@ -0,0 +1,35 @@ | |||||
<?php | |||||
use Illuminate\Support\Facades\Schema; | |||||
use Illuminate\Database\Schema\Blueprint; | |||||
use Illuminate\Database\Migrations\Migration; | |||||
class CreateUsersTable extends Migration | |||||
{ | |||||
/** | |||||
* Run the migrations. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function up() | |||||
{ | |||||
Schema::create('users', function (Blueprint $table) { | |||||
$table->increments('id'); | |||||
$table->string('name'); | |||||
$table->string('email')->unique(); | |||||
$table->string('password'); | |||||
$table->rememberToken(); | |||||
$table->timestamps(); | |||||
}); | |||||
} | |||||
/** | |||||
* Reverse the migrations. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function down() | |||||
{ | |||||
Schema::dropIfExists('users'); | |||||
} | |||||
} |
@ -0,0 +1,32 @@ | |||||
<?php | |||||
use Illuminate\Support\Facades\Schema; | |||||
use Illuminate\Database\Schema\Blueprint; | |||||
use Illuminate\Database\Migrations\Migration; | |||||
class CreatePasswordResetsTable extends Migration | |||||
{ | |||||
/** | |||||
* Run the migrations. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function up() | |||||
{ | |||||
Schema::create('password_resets', function (Blueprint $table) { | |||||
$table->string('email')->index(); | |||||
$table->string('token'); | |||||
$table->timestamp('created_at')->nullable(); | |||||
}); | |||||
} | |||||
/** | |||||
* Reverse the migrations. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function down() | |||||
{ | |||||
Schema::dropIfExists('password_resets'); | |||||
} | |||||
} |
@ -0,0 +1,31 @@ | |||||
<?php | |||||
use Illuminate\Support\Facades\Schema; | |||||
use Illuminate\Database\Schema\Blueprint; | |||||
use Illuminate\Database\Migrations\Migration; | |||||
class CreateTeams extends Migration | |||||
{ | |||||
/** | |||||
* Run the migrations. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function up() | |||||
{ | |||||
Schema::create('teams', function (Blueprint $table) { | |||||
$table->increments('id'); | |||||
$table->timestamps(); | |||||
}); | |||||
} | |||||
/** | |||||
* Reverse the migrations. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function down() | |||||
{ | |||||
Schema::dropIfExists('teams'); | |||||
} | |||||
} |
@ -0,0 +1,32 @@ | |||||
<?php | |||||
use Illuminate\Support\Facades\Schema; | |||||
use Illuminate\Database\Schema\Blueprint; | |||||
use Illuminate\Database\Migrations\Migration; | |||||
class CreatePlayers extends Migration | |||||
{ | |||||
/** | |||||
* Run the migrations. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function up() | |||||
{ | |||||
Schema::create('players', function (Blueprint $table) { | |||||
$table->increments('id'); | |||||
$table->timestamps(); | |||||
$table->integer('team_id'); | |||||
}); | |||||
} | |||||
/** | |||||
* Reverse the migrations. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function down() | |||||
{ | |||||
Schema::dropIfExists('players'); | |||||
} | |||||
} |
@ -0,0 +1,16 @@ | |||||
<?php | |||||
use Illuminate\Database\Seeder; | |||||
class DatabaseSeeder extends Seeder | |||||
{ | |||||
/** | |||||
* Run the database seeds. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function run() | |||||
{ | |||||
// $this->call(UsersTableSeeder::class); | |||||
} | |||||
} |
@ -0,0 +1,21 @@ | |||||
{ | |||||
"private": true, | |||||
"scripts": { | |||||
"dev": "npm run development", | |||||
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", | |||||
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", | |||||
"watch-poll": "npm run watch -- --watch-poll", | |||||
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", | |||||
"prod": "npm run production", | |||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" | |||||
}, | |||||
"devDependencies": { | |||||
"axios": "^0.16.2", | |||||
"bootstrap-sass": "^3.3.7", | |||||
"cross-env": "^5.0.1", | |||||
"jquery": "^3.1.1", | |||||
"laravel-mix": "^1.0", | |||||
"lodash": "^4.17.4", | |||||
"vue": "^2.1.10" | |||||
} | |||||
} |
@ -0,0 +1,31 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<phpunit backupGlobals="false" | |||||
backupStaticAttributes="false" | |||||
bootstrap="bootstrap/autoload.php" | |||||
colors="true" | |||||
convertErrorsToExceptions="true" | |||||
convertNoticesToExceptions="true" | |||||
convertWarningsToExceptions="true" | |||||
processIsolation="false" | |||||
stopOnFailure="false"> | |||||
<testsuites> | |||||
<testsuite name="Feature"> | |||||
<directory suffix="Test.php">./tests/Feature</directory> | |||||
</testsuite> | |||||
<testsuite name="Unit"> | |||||
<directory suffix="Test.php">./tests/Unit</directory> | |||||
</testsuite> | |||||
</testsuites> | |||||
<filter> | |||||
<whitelist processUncoveredFilesFromWhitelist="true"> | |||||
<directory suffix=".php">./app</directory> | |||||
</whitelist> | |||||
</filter> | |||||
<php> | |||||
<env name="APP_ENV" value="testing"/> | |||||
<env name="CACHE_DRIVER" value="array"/> | |||||
<env name="SESSION_DRIVER" value="array"/> | |||||
<env name="QUEUE_DRIVER" value="sync"/> | |||||
</php> | |||||
</phpunit> |
@ -0,0 +1,20 @@ | |||||
<IfModule mod_rewrite.c> | |||||
<IfModule mod_negotiation.c> | |||||
Options -MultiViews | |||||
</IfModule> | |||||
RewriteEngine On | |||||
# Redirect Trailing Slashes If Not A Folder... | |||||
RewriteCond %{REQUEST_FILENAME} !-d | |||||
RewriteRule ^(.*)/$ /$1 [L,R=301] | |||||
# Handle Front Controller... | |||||
RewriteCond %{REQUEST_FILENAME} !-d | |||||
RewriteCond %{REQUEST_FILENAME} !-f | |||||
RewriteRule ^ index.php [L] | |||||
# Handle Authorization Header | |||||
RewriteCond %{HTTP:Authorization} . | |||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] | |||||
</IfModule> |
@ -0,0 +1,58 @@ | |||||
<?php | |||||
/** | |||||
* Laravel - A PHP Framework For Web Artisans | |||||
* | |||||
* @package Laravel | |||||
* @author Taylor Otwell <taylor@laravel.com> | |||||
*/ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Register The Auto Loader | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Composer provides a convenient, automatically generated class loader for | |||||
| our application. We just need to utilize it! We'll simply require it | |||||
| into the script here so that we don't have to worry about manual | |||||
| loading any of our classes later on. It feels great to relax. | |||||
| | |||||
*/ | |||||
require __DIR__.'/../bootstrap/autoload.php'; | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Turn On The Lights | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| We need to illuminate PHP development, so let us turn on the lights. | |||||
| This bootstraps the framework and gets it ready for use, then it | |||||
| will load up this application so that we can run it and send | |||||
| the responses back to the browser and delight our users. | |||||
| | |||||
*/ | |||||
$app = require_once __DIR__.'/../bootstrap/app.php'; | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Run The Application | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Once we have the application, we can handle the incoming request | |||||
| through the kernel, and send the associated response back to | |||||
| the client's browser allowing them to enjoy the creative | |||||
| and wonderful application we have prepared for them. | |||||
| | |||||
*/ | |||||
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); | |||||
$response = $kernel->handle( | |||||
$request = Illuminate\Http\Request::capture() | |||||
); | |||||
$response->send(); | |||||
$kernel->terminate($request, $response); |
@ -0,0 +1,2 @@ | |||||
User-agent: * | |||||
Disallow: |
@ -0,0 +1,22 @@ | |||||
/** | |||||
* First we will load all of this project's JavaScript dependencies which | |||||
* includes Vue and other libraries. It is a great starting point when | |||||
* building robust, powerful web applications using Vue and Laravel. | |||||
*/ | |||||
require('./bootstrap'); | |||||
window.Vue = require('vue'); | |||||
/** | |||||
* Next, we will create a fresh Vue application instance and attach it to | |||||
* the page. Then, you may begin adding components to this application | |||||
* or customize the JavaScript scaffolding to fit your unique needs. | |||||
*/ | |||||
Vue.component('example', require('./components/Example.vue')); | |||||
const app = new Vue({ | |||||
el: '#app' | |||||
}); |
@ -0,0 +1,53 @@ | |||||
window._ = require('lodash'); | |||||
/** | |||||
* We'll load jQuery and the Bootstrap jQuery plugin which provides support | |||||
* for JavaScript based Bootstrap features such as modals and tabs. This | |||||
* code may be modified to fit the specific needs of your application. | |||||
*/ | |||||
try { | |||||
window.$ = window.jQuery = require('jquery'); | |||||
require('bootstrap-sass'); | |||||
} catch (e) {} | |||||
/** | |||||
* We'll load the axios HTTP library which allows us to easily issue requests | |||||
* to our Laravel back-end. This library automatically handles sending the | |||||
* CSRF token as a header based on the value of the "XSRF" token cookie. | |||||
*/ | |||||
window.axios = require('axios'); | |||||
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; | |||||
/** | |||||
* Next we will register the CSRF Token as a common header with Axios so that | |||||
* all outgoing HTTP requests automatically have it attached. This is just | |||||
* a simple convenience so we don't have to attach every token manually. | |||||
*/ | |||||
let token = document.head.querySelector('meta[name="csrf-token"]'); | |||||
if (token) { | |||||
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content; | |||||
} else { | |||||
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token'); | |||||
} | |||||
/** | |||||
* Echo exposes an expressive API for subscribing to channels and listening | |||||
* for events that are broadcast by Laravel. Echo and event broadcasting | |||||
* allows your team to easily build robust real-time web applications. | |||||
*/ | |||||
// import Echo from 'laravel-echo' | |||||
// window.Pusher = require('pusher-js'); | |||||
// window.Echo = new Echo({ | |||||
// broadcaster: 'pusher', | |||||
// key: 'your-pusher-key' | |||||
// }); |
@ -0,0 +1,23 @@ | |||||
<template> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-md-8 col-md-offset-2"> | |||||
<div class="panel panel-default"> | |||||
<div class="panel-heading">Example Component</div> | |||||
<div class="panel-body"> | |||||
I'm an example component! | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
mounted() { | |||||
console.log('Component mounted.') | |||||
} | |||||
} | |||||
</script> |
@ -0,0 +1,38 @@ | |||||
// Body | |||||
$body-bg: #f5f8fa; | |||||
// Borders | |||||
$laravel-border-color: darken($body-bg, 10%); | |||||
$list-group-border: $laravel-border-color; | |||||
$navbar-default-border: $laravel-border-color; | |||||
$panel-default-border: $laravel-border-color; | |||||
$panel-inner-border: $laravel-border-color; | |||||
// Brands | |||||
$brand-primary: #3097D1; | |||||
$brand-info: #8eb4cb; | |||||
$brand-success: #2ab27b; | |||||
$brand-warning: #cbb956; | |||||
$brand-danger: #bf5329; | |||||
// Typography | |||||
$icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/"; | |||||
$font-family-sans-serif: "Raleway", sans-serif; | |||||
$font-size-base: 14px; | |||||
$line-height-base: 1.6; | |||||
$text-color: #636b6f; | |||||
// Navbar | |||||
$navbar-default-bg: #fff; | |||||
// Buttons | |||||
$btn-default-color: $text-color; | |||||
// Inputs | |||||
$input-border: lighten($text-color, 40%); | |||||
$input-border-focus: lighten($brand-primary, 25%); | |||||
$input-color-placeholder: lighten($text-color, 30%); | |||||
// Panels | |||||
$panel-default-heading-bg: #fff; |
@ -0,0 +1,9 @@ | |||||
// Fonts | |||||
@import url("https://fonts.googleapis.com/css?family=Raleway:300,400,600"); | |||||
// Variables | |||||
@import "variables"; | |||||
// Bootstrap | |||||
@import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap"; |
@ -0,0 +1,19 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Authentication Language Lines | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The following language lines are used during authentication for various | |||||
| messages that we need to display to the user. You are free to modify | |||||
| these language lines according to your application's requirements. | |||||
| | |||||
*/ | |||||
'failed' => 'These credentials do not match our records.', | |||||
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', | |||||
]; |
@ -0,0 +1,19 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Pagination Language Lines | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The following language lines are used by the paginator library to build | |||||
| the simple pagination links. You are free to change them to anything | |||||
| you want to customize your views to better match your application. | |||||
| | |||||
*/ | |||||
'previous' => '« Previous', | |||||
'next' => 'Next »', | |||||
]; |
@ -0,0 +1,22 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Password Reset Language Lines | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The following language lines are the default lines which match reasons | |||||
| that are given by the password broker for a password update attempt | |||||
| has failed, such as for an invalid token or invalid new password. | |||||
| | |||||
*/ | |||||
'password' => 'Passwords must be at least six characters and match the confirmation.', | |||||
'reset' => 'Your password has been reset!', | |||||
'sent' => 'We have e-mailed your password reset link!', | |||||
'token' => 'This password reset token is invalid.', | |||||
'user' => "We can't find a user with that e-mail address.", | |||||
]; |
@ -0,0 +1,121 @@ | |||||
<?php | |||||
return [ | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Validation Language Lines | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The following language lines contain the default error messages used by | |||||
| the validator class. Some of these rules have multiple versions such | |||||
| as the size rules. Feel free to tweak each of these messages here. | |||||
| | |||||
*/ | |||||
'accepted' => 'The :attribute must be accepted.', | |||||
'active_url' => 'The :attribute is not a valid URL.', | |||||
'after' => 'The :attribute must be a date after :date.', | |||||
'after_or_equal' => 'The :attribute must be a date after or equal to :date.', | |||||
'alpha' => 'The :attribute may only contain letters.', | |||||
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', | |||||
'alpha_num' => 'The :attribute may only contain letters and numbers.', | |||||
'array' => 'The :attribute must be an array.', | |||||
'before' => 'The :attribute must be a date before :date.', | |||||
'before_or_equal' => 'The :attribute must be a date before or equal to :date.', | |||||
'between' => [ | |||||
'numeric' => 'The :attribute must be between :min and :max.', | |||||
'file' => 'The :attribute must be between :min and :max kilobytes.', | |||||
'string' => 'The :attribute must be between :min and :max characters.', | |||||
'array' => 'The :attribute must have between :min and :max items.', | |||||
], | |||||
'boolean' => 'The :attribute field must be true or false.', | |||||
'confirmed' => 'The :attribute confirmation does not match.', | |||||
'date' => 'The :attribute is not a valid date.', | |||||
'date_format' => 'The :attribute does not match the format :format.', | |||||
'different' => 'The :attribute and :other must be different.', | |||||
'digits' => 'The :attribute must be :digits digits.', | |||||
'digits_between' => 'The :attribute must be between :min and :max digits.', | |||||
'dimensions' => 'The :attribute has invalid image dimensions.', | |||||
'distinct' => 'The :attribute field has a duplicate value.', | |||||
'email' => 'The :attribute must be a valid email address.', | |||||
'exists' => 'The selected :attribute is invalid.', | |||||
'file' => 'The :attribute must be a file.', | |||||
'filled' => 'The :attribute field must have a value.', | |||||
'image' => 'The :attribute must be an image.', | |||||
'in' => 'The selected :attribute is invalid.', | |||||
'in_array' => 'The :attribute field does not exist in :other.', | |||||
'integer' => 'The :attribute must be an integer.', | |||||
'ip' => 'The :attribute must be a valid IP address.', | |||||
'ipv4' => 'The :attribute must be a valid IPv4 address.', | |||||
'ipv6' => 'The :attribute must be a valid IPv6 address.', | |||||
'json' => 'The :attribute must be a valid JSON string.', | |||||
'max' => [ | |||||
'numeric' => 'The :attribute may not be greater than :max.', | |||||
'file' => 'The :attribute may not be greater than :max kilobytes.', | |||||
'string' => 'The :attribute may not be greater than :max characters.', | |||||
'array' => 'The :attribute may not have more than :max items.', | |||||
], | |||||
'mimes' => 'The :attribute must be a file of type: :values.', | |||||
'mimetypes' => 'The :attribute must be a file of type: :values.', | |||||
'min' => [ | |||||
'numeric' => 'The :attribute must be at least :min.', | |||||
'file' => 'The :attribute must be at least :min kilobytes.', | |||||
'string' => 'The :attribute must be at least :min characters.', | |||||
'array' => 'The :attribute must have at least :min items.', | |||||
], | |||||
'not_in' => 'The selected :attribute is invalid.', | |||||
'numeric' => 'The :attribute must be a number.', | |||||
'present' => 'The :attribute field must be present.', | |||||
'regex' => 'The :attribute format is invalid.', | |||||
'required' => 'The :attribute field is required.', | |||||
'required_if' => 'The :attribute field is required when :other is :value.', | |||||
'required_unless' => 'The :attribute field is required unless :other is in :values.', | |||||
'required_with' => 'The :attribute field is required when :values is present.', | |||||
'required_with_all' => 'The :attribute field is required when :values is present.', | |||||
'required_without' => 'The :attribute field is required when :values is not present.', | |||||
'required_without_all' => 'The :attribute field is required when none of :values are present.', | |||||
'same' => 'The :attribute and :other must match.', | |||||
'size' => [ | |||||
'numeric' => 'The :attribute must be :size.', | |||||
'file' => 'The :attribute must be :size kilobytes.', | |||||
'string' => 'The :attribute must be :size characters.', | |||||
'array' => 'The :attribute must contain :size items.', | |||||
], | |||||
'string' => 'The :attribute must be a string.', | |||||
'timezone' => 'The :attribute must be a valid zone.', | |||||
'unique' => 'The :attribute has already been taken.', | |||||
'uploaded' => 'The :attribute failed to upload.', | |||||
'url' => 'The :attribute format is invalid.', | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Custom Validation Language Lines | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may specify custom validation messages for attributes using the | |||||
| convention "attribute.rule" to name the lines. This makes it quick to | |||||
| specify a specific custom language line for a given attribute rule. | |||||
| | |||||
*/ | |||||
'custom' => [ | |||||
'attribute-name' => [ | |||||
'rule-name' => 'custom-message', | |||||
], | |||||
], | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Custom Validation Attributes | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| The following language lines are used to swap attribute place-holders | |||||
| with something more reader friendly such as E-Mail Address instead | |||||
| of "email". This simply helps us make messages a little cleaner. | |||||
| | |||||
*/ | |||||
'attributes' => [], | |||||
]; |
@ -0,0 +1,95 @@ | |||||
<!doctype html> | |||||
<html lang="{{ app()->getLocale() }}"> | |||||
<head> | |||||
<meta charset="utf-8"> | |||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||||
<title>Laravel</title> | |||||
<!-- Fonts --> | |||||
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css"> | |||||
<!-- Styles --> | |||||
<style> | |||||
html, body { | |||||
background-color: #fff; | |||||
color: #636b6f; | |||||
font-family: 'Raleway', sans-serif; | |||||
font-weight: 100; | |||||
height: 100vh; | |||||
margin: 0; | |||||
} | |||||
.full-height { | |||||
height: 100vh; | |||||
} | |||||
.flex-center { | |||||
align-items: center; | |||||
display: flex; | |||||
justify-content: center; | |||||
} | |||||
.position-ref { | |||||
position: relative; | |||||
} | |||||
.top-right { | |||||
position: absolute; | |||||
right: 10px; | |||||
top: 18px; | |||||
} | |||||
.content { | |||||
text-align: center; | |||||
} | |||||
.title { | |||||
font-size: 84px; | |||||
} | |||||
.links > a { | |||||
color: #636b6f; | |||||
padding: 0 25px; | |||||
font-size: 12px; | |||||
font-weight: 600; | |||||
letter-spacing: .1rem; | |||||
text-decoration: none; | |||||
text-transform: uppercase; | |||||
} | |||||
.m-b-md { | |||||
margin-bottom: 30px; | |||||
} | |||||
</style> | |||||
</head> | |||||
<body> | |||||
<div class="flex-center position-ref full-height"> | |||||
@if (Route::has('login')) | |||||
<div class="top-right links"> | |||||
@if (Auth::check()) | |||||
<a href="{{ url('/home') }}">Home</a> | |||||
@else | |||||
<a href="{{ url('/login') }}">Login</a> | |||||
<a href="{{ url('/register') }}">Register</a> | |||||
@endif | |||||
</div> | |||||
@endif | |||||
<div class="content"> | |||||
<div class="title m-b-md"> | |||||
Laravel | |||||
</div> | |||||
<div class="links"> | |||||
<a href="https://laravel.com/docs">Documentation</a> | |||||
<a href="https://laracasts.com">Laracasts</a> | |||||
<a href="https://laravel-news.com">News</a> | |||||
<a href="https://forge.laravel.com">Forge</a> | |||||
<a href="https://github.com/laravel/laravel">GitHub</a> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</body> | |||||
</html> |
@ -0,0 +1,18 @@ | |||||
<?php | |||||
use Illuminate\Http\Request; | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| API Routes | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here is where you can register API routes for your application. These | |||||
| routes are loaded by the RouteServiceProvider within a group which | |||||
| is assigned the "api" middleware group. Enjoy building your API! | |||||
| | |||||
*/ | |||||
Route::middleware('auth:api')->get('/user', function (Request $request) { | |||||
return $request->user(); | |||||
}); |
@ -0,0 +1,16 @@ | |||||
<?php | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Broadcast Channels | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here you may register all of the event broadcasting channels that your | |||||
| application supports. The given channel authorization callbacks are | |||||
| used to check if an authenticated user can listen to the channel. | |||||
| | |||||
*/ | |||||
Broadcast::channel('App.User.{id}', function ($user, $id) { | |||||
return (int) $user->id === (int) $id; | |||||
}); |
@ -0,0 +1,18 @@ | |||||
<?php | |||||
use Illuminate\Foundation\Inspiring; | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Console Routes | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| This file is where you may define all of your Closure based console | |||||
| commands. Each Closure is bound to a command instance allowing a | |||||
| simple approach to interacting with each command's IO methods. | |||||
| | |||||
*/ | |||||
Artisan::command('inspire', function () { | |||||
$this->comment(Inspiring::quote()); | |||||
})->describe('Display an inspiring quote'); |
@ -0,0 +1,16 @@ | |||||
<?php | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Web Routes | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Here is where you can register web routes for your application. These | |||||
| routes are loaded by the RouteServiceProvider within a group which | |||||
| contains the "web" middleware group. Now create something great! | |||||
| | |||||
*/ | |||||
Route::get('/', function () { | |||||
return view('welcome'); | |||||
}); |
@ -0,0 +1,21 @@ | |||||
<?php | |||||
/** | |||||
* Laravel - A PHP Framework For Web Artisans | |||||
* | |||||
* @package Laravel | |||||
* @author Taylor Otwell <taylor@laravel.com> | |||||
*/ | |||||
$uri = urldecode( | |||||
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) | |||||
); | |||||
// This file allows us to emulate Apache's "mod_rewrite" functionality from the | |||||
// built-in PHP web server. This provides a convenient way to test a Laravel | |||||
// application without having installed a "real" web server software here. | |||||
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { | |||||
return false; | |||||
} | |||||
require_once __DIR__.'/public/index.php'; |
@ -0,0 +1,3 @@ | |||||
* | |||||
!public/ | |||||
!.gitignore |
@ -0,0 +1,2 @@ | |||||
* | |||||
!.gitignore |
@ -0,0 +1,8 @@ | |||||
config.php | |||||
routes.php | |||||
schedule-* | |||||
compiled.php | |||||
services.json | |||||
events.scanned.php | |||||
routes.scanned.php | |||||
down |
@ -0,0 +1,2 @@ | |||||
* | |||||
!.gitignore |
@ -0,0 +1,2 @@ | |||||
* | |||||
!.gitignore |
@ -0,0 +1,2 @@ | |||||
* | |||||
!.gitignore |
@ -0,0 +1,2 @@ | |||||
* | |||||
!.gitignore |
@ -0,0 +1,2 @@ | |||||
* | |||||
!.gitignore |
@ -0,0 +1,22 @@ | |||||
<?php | |||||
namespace Tests; | |||||
use Illuminate\Contracts\Console\Kernel; | |||||
trait CreatesApplication | |||||
{ | |||||
/** | |||||
* Creates the application. | |||||
* | |||||
* @return \Illuminate\Foundation\Application | |||||
*/ | |||||
public function createApplication() | |||||
{ | |||||
$app = require __DIR__.'/../bootstrap/app.php'; | |||||
$app->make(Kernel::class)->bootstrap(); | |||||
return $app; | |||||
} | |||||
} |
@ -0,0 +1,23 @@ | |||||
<?php | |||||
namespace Tests\Feature; | |||||
use Tests\TestCase; | |||||
use Illuminate\Foundation\Testing\WithoutMiddleware; | |||||
use Illuminate\Foundation\Testing\DatabaseMigrations; | |||||
use Illuminate\Foundation\Testing\DatabaseTransactions; | |||||
class ExampleTest extends TestCase | |||||
{ | |||||
/** | |||||
* A basic test example. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function testBasicTest() | |||||
{ | |||||
$response = $this->get('/'); | |||||
$response->assertStatus(200); | |||||
} | |||||
} |
@ -0,0 +1,10 @@ | |||||
<?php | |||||
namespace Tests; | |||||
use Illuminate\Foundation\Testing\TestCase as BaseTestCase; | |||||
abstract class TestCase extends BaseTestCase | |||||
{ | |||||
use CreatesApplication; | |||||
} |
@ -0,0 +1,20 @@ | |||||
<?php | |||||
namespace Tests\Unit; | |||||
use Tests\TestCase; | |||||
use Illuminate\Foundation\Testing\DatabaseMigrations; | |||||
use Illuminate\Foundation\Testing\DatabaseTransactions; | |||||
class ExampleTest extends TestCase | |||||
{ | |||||
/** | |||||
* A basic test example. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function testBasicTest() | |||||
{ | |||||
$this->assertTrue(true); | |||||
} | |||||
} |
@ -0,0 +1,15 @@ | |||||
let mix = require('laravel-mix'); | |||||
/* | |||||
|-------------------------------------------------------------------------- | |||||
| Mix Asset Management | |||||
|-------------------------------------------------------------------------- | |||||
| | |||||
| Mix provides a clean, fluent API for defining some Webpack build steps | |||||
| for your Laravel application. By default, we are compiling the Sass | |||||
| file for the application as well as bundling up all the JS files. | |||||
| | |||||
*/ | |||||
mix.js('resources/assets/js/app.js', 'public/js') | |||||
.sass('resources/assets/sass/app.scss', 'public/css'); |