Compare commits
	
		
			3 Commits
		
	
	
		
			0b53fce31b
			...
			e588866a92
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e588866a92 | |||
| 2c199f1ce1 | |||
| 9097a3006b | 
@@ -5,7 +5,7 @@ namespace app\controllers;
 | 
				
			|||||||
use app\models\Answer;
 | 
					use app\models\Answer;
 | 
				
			||||||
use app\models\Upvote;
 | 
					use app\models\Upvote;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Answers {
 | 
					class AnswerController {
 | 
				
			||||||
    public function actionAddAnswer($answer,$question_id,$user_id)
 | 
					    public function actionAddAnswer($answer,$question_id,$user_id)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return Answer::create(['answer'=>$answer,'question_id'=>$question_id,'user_id'=>$user_id]);
 | 
					        return Answer::create(['answer'=>$answer,'question_id'=>$question_id,'user_id'=>$user_id]);
 | 
				
			||||||
@@ -3,7 +3,7 @@ namespace app\controllers;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
use app\models\Question;
 | 
					use app\models\Question;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Questions{
 | 
					class QuestionController{
 | 
				
			||||||
    public function actionCreateQuestion($question,$user_id)
 | 
					    public function actionCreateQuestion($question,$user_id)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return Question::create(['question'=>$question,'user_id'=>$user_id]);
 | 
					        return Question::create(['question'=>$question,'user_id'=>$user_id]);
 | 
				
			||||||
@@ -11,7 +11,7 @@ class Questions{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function actionGetQuestionsWithAnswers()
 | 
					    public function actionGetQuestionsWithAnswers()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return Question::with('Answers')->get()->toArray();
 | 
					        return Question::with('AnswerController')->get()->toArray();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function actionGetQuestionsWithUsers()
 | 
					    public function actionGetQuestionsWithUsers()
 | 
				
			||||||
@@ -8,12 +8,17 @@ use app\models\User;
 | 
				
			|||||||
use http\Encoding\Stream\Debrotli;
 | 
					use http\Encoding\Stream\Debrotli;
 | 
				
			||||||
use Illuminate\Contracts\View\View;
 | 
					use Illuminate\Contracts\View\View;
 | 
				
			||||||
use Illuminate\Support\Facades\DB;
 | 
					use Illuminate\Support\Facades\DB;
 | 
				
			||||||
 | 
					use Illuminate\Database\Eloquent\SoftDeletes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class UserController {
 | 
					class UserController {
 | 
				
			||||||
    public function actionCreate(): void
 | 
					    public function actionCreate(): void
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Debug::dd("create");
 | 
					        require "app/views/userCreate.php";
 | 
				
			||||||
        //return User::create(['username'=>$username,'email'=>$email,'password'=>$password]);
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function actionAdd(): void
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        User::create($_REQUEST);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function actionQuestionCount($user_id)
 | 
					    public function actionQuestionCount($user_id)
 | 
				
			||||||
@@ -23,7 +28,6 @@ class UserController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function actionIndex(): void
 | 
					    public function actionIndex(): void
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Debug::dd("list");
 | 
					 | 
				
			||||||
        foreach (User::all() as $user)
 | 
					        foreach (User::all() as $user)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            echo $user->username . "<br>";
 | 
					            echo $user->username . "<br>";
 | 
				
			||||||
@@ -32,12 +36,36 @@ class UserController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function actionView($id): void
 | 
					    public function actionView($id): void
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Debug::dd($id);
 | 
					 | 
				
			||||||
        echo User::where('id', '=', $id)->get();
 | 
					        echo User::where('id', '=', $id)->get();
 | 
				
			||||||
//        $user =  User::where('id', '=', 13)->get();
 | 
					        echo User::where('id', '=', $id)->first() . "<br><br>";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//        echo $user->username . "<br>";
 | 
					        $user = User::find($id);
 | 
				
			||||||
//        echo $user->email . "<br>";
 | 
					        echo $user->id . "<br>";
 | 
				
			||||||
//        echo $user->created_at . "<br>";
 | 
					        echo $user->username . "<br>";
 | 
				
			||||||
 | 
					        echo $user->email . "<br>";
 | 
				
			||||||
 | 
					        echo $user->password . "<br>";
 | 
				
			||||||
 | 
					        echo $user->created_at . "<br>";
 | 
				
			||||||
 | 
					        echo $user->updated_at . "<br>";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function actionUpdate(): void
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Debug::prn("Update");
 | 
				
			||||||
 | 
					        require "app/views/userUpdate.php";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function actionEdit(): void
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $user = User::find($_REQUEST['id']);
 | 
				
			||||||
 | 
					        $user->username = $_REQUEST['username'];
 | 
				
			||||||
 | 
					        $user->email = $_REQUEST['email'];
 | 
				
			||||||
 | 
					        $user->password = $_REQUEST['password'];
 | 
				
			||||||
 | 
					        $user->save();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function actionDelete($id): void
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        User::find($id)->delete();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -4,7 +4,7 @@ namespace app\models;
 | 
				
			|||||||
use \Illuminate\Database\Eloquent\Model;
 | 
					use \Illuminate\Database\Eloquent\Model;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Answer extends Model {
 | 
					class Answer extends Model {
 | 
				
			||||||
    protected $table = 'Answers';
 | 
					    protected $table = 'AnswerController';
 | 
				
			||||||
    protected $fillable = ['answer','user_id','question_id'];
 | 
					    protected $fillable = ['answer','user_id','question_id'];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function upvotes()
 | 
					    public function upvotes()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,4 +5,5 @@ use \Illuminate\Database\Eloquent\Model;
 | 
				
			|||||||
class User extends Model {
 | 
					class User extends Model {
 | 
				
			||||||
    protected $table = 'Users';
 | 
					    protected $table = 'Users';
 | 
				
			||||||
    protected $fillable = ['username', 'email', 'password'];
 | 
					    protected $fillable = ['username', 'email', 'password'];
 | 
				
			||||||
 | 
					    protected $dates = ['deleted at'];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										19
									
								
								app/views/userCreate.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								app/views/userCreate.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					<form action="/admin/user/" method="post">
 | 
				
			||||||
 | 
					    Логин:<br>
 | 
				
			||||||
 | 
					    <label>
 | 
				
			||||||
 | 
					        <input type = "text" name = "username" required size="50" autofocus placeholder="Логин">
 | 
				
			||||||
 | 
					    </label> <br> <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Пароль:<br>
 | 
				
			||||||
 | 
					    <label>
 | 
				
			||||||
 | 
					        <input type = "text" name = "password" required size="50" placeholder="Пароль">
 | 
				
			||||||
 | 
					    </label> <br> <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Email адрес: <br>
 | 
				
			||||||
 | 
					    <label>
 | 
				
			||||||
 | 
					        <input type="Email" name="email" required>
 | 
				
			||||||
 | 
					    </label> <br><br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <input type = "submit" value="Подтвердить">
 | 
				
			||||||
 | 
					    <input type="reset">
 | 
				
			||||||
 | 
					</form>
 | 
				
			||||||
							
								
								
									
										24
									
								
								app/views/userUpdate.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								app/views/userUpdate.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					<form action="/admin/user/edit" method="post">
 | 
				
			||||||
 | 
					    id пользователя:<br>
 | 
				
			||||||
 | 
					    <label>
 | 
				
			||||||
 | 
					        <input type = "text" name = "id" required size="50" autofocus placeholder="id">
 | 
				
			||||||
 | 
					    </label> <br> <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Логин:<br>
 | 
				
			||||||
 | 
					    <label>
 | 
				
			||||||
 | 
					        <input type = "text" name = "username" required size="50" autofocus placeholder="Логин">
 | 
				
			||||||
 | 
					    </label> <br> <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Пароль:<br>
 | 
				
			||||||
 | 
					    <label>
 | 
				
			||||||
 | 
					        <input type = "text" name = "password" required size="50" placeholder="Пароль">
 | 
				
			||||||
 | 
					    </label> <br> <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Email адрес: <br>
 | 
				
			||||||
 | 
					    <label>
 | 
				
			||||||
 | 
					        <input type="Email" name="email" required>
 | 
				
			||||||
 | 
					    </label> <br><br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <input type = "submit" value="Подтвердить">
 | 
				
			||||||
 | 
					    <input type="reset">
 | 
				
			||||||
 | 
					</form>
 | 
				
			||||||
@@ -4,7 +4,8 @@
 | 
				
			|||||||
  "type": "project",
 | 
					  "type": "project",
 | 
				
			||||||
  "require": {
 | 
					  "require": {
 | 
				
			||||||
    "illuminate/database": "^11.14",
 | 
					    "illuminate/database": "^11.14",
 | 
				
			||||||
    "craft-group/phroute": "^2.1"
 | 
					    "craft-group/phroute": "^2.1",
 | 
				
			||||||
 | 
					    "ext-http": "*"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "autoload": {
 | 
					  "autoload": {
 | 
				
			||||||
    "psr-4": {
 | 
					    "psr-4": {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							@@ -1404,5 +1404,5 @@
 | 
				
			|||||||
    "prefer-lowest": false,
 | 
					    "prefer-lowest": false,
 | 
				
			||||||
    "platform": [],
 | 
					    "platform": [],
 | 
				
			||||||
    "platform-dev": [],
 | 
					    "platform-dev": [],
 | 
				
			||||||
    "plugin-api-version": "2.3.0"
 | 
					    "plugin-api-version": "2.6.0"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										20
									
								
								index.php
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								index.php
									
									
									
									
									
								
							@@ -7,33 +7,35 @@ require_once "vendor/autoload.php";
 | 
				
			|||||||
require 'bootstrap.php';
 | 
					require 'bootstrap.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use app\controllers\MainController;
 | 
					use app\controllers\MainController;
 | 
				
			||||||
use app\controllers\Users;
 | 
					use app\controllers\UserController;
 | 
				
			||||||
use app\controllers\Questions;
 | 
					use app\controllers\QuestionController;
 | 
				
			||||||
use app\controllers\Answers;
 | 
					use app\controllers\AnswerController;
 | 
				
			||||||
use app\controllers\Posts;
 | 
					use app\controllers\PostController;
 | 
				
			||||||
 | 
					use app\helpers\Debug;
 | 
				
			||||||
use Phroute\Phroute\RouteCollector;
 | 
					use Phroute\Phroute\RouteCollector;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$router = new RouteCollector();
 | 
					$router = new RouteCollector();
 | 
				
			||||||
 | 
					 | 
				
			||||||
$router->get('/', [MainController::class, 'actionIndex']);
 | 
					$router->get('/', [MainController::class, 'actionIndex']);
 | 
				
			||||||
$router->get('/example', [MainController::class, 'actionExample']);
 | 
					$router->get('/example', [MainController::class, 'actionExample']);
 | 
				
			||||||
$router->group(["prefix" => "admin"], function (RouteCollector $router){
 | 
					$router->group(["prefix" => "admin"], function (RouteCollector $router){
 | 
				
			||||||
    $router->group(["prefix" => "user"], function (RouteCollector $router){
 | 
					    $router->group(["prefix" => "user"], function (RouteCollector $router){
 | 
				
			||||||
        $router->get('/create', [\app\controllers\UserController::class, 'actionCreate']);
 | 
					        $router->get('/create', [\app\controllers\UserController::class, 'actionCreate']);
 | 
				
			||||||
        $router->get('/update', [\app\controllers\UserController::class, 'actionCreate']);
 | 
					        $router->get('/update', [\app\controllers\UserController::class, 'actionUpdate']);
 | 
				
			||||||
 | 
					        $router->get('/delete/{id}', [\app\controllers\UserController::class, 'actionDelete']);
 | 
				
			||||||
        $router->get('/', [\app\controllers\UserController::class, 'actionIndex']);
 | 
					        $router->get('/', [\app\controllers\UserController::class, 'actionIndex']);
 | 
				
			||||||
        $router->get('/{id}', [\app\controllers\UserController::class, 'actionView']);
 | 
					        $router->get('/{id}', [\app\controllers\UserController::class, 'actionView']);
 | 
				
			||||||
        $router->post("/", []);
 | 
					        $router->post("/", [\app\controllers\UserController::class, 'actionAdd']);
 | 
				
			||||||
 | 
					        $router->post("/edit", [\app\controllers\UserController::class, 'actionEdit']);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
    $router->group(["prefix" => "post"], function (RouteCollector $router){
 | 
					    $router->group(["prefix" => "post"], function (RouteCollector $router){
 | 
				
			||||||
        $router->get('/', [\app\controllers\PostController::class, 'actionIndex']);
 | 
					        $router->get('/', [\app\controllers\PostController::class, 'actionIndex']);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$router->get('/allQuestions', [Questions::class, 'actionViewAllQuestions']);
 | 
					$router->get('/allQuestions', [QuestionController::class, 'actionViewAllQuestions']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$router->get('/allAnswers', [Answers::class, 'actionViewAllAnswers']);
 | 
					$router->get('/allAnswers', [AnswerController::class, 'actionViewAllAnswers']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$dispatcher = new Phroute\Phroute\Dispatcher($router->getData());
 | 
					$dispatcher = new Phroute\Phroute\Dispatcher($router->getData());
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										579
									
								
								vendor/composer/ClassLoader.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										579
									
								
								vendor/composer/ClassLoader.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,579 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This file is part of Composer.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * (c) Nils Adermann <naderman@naderman.de>
 | 
				
			||||||
 | 
					 *     Jordi Boggiano <j.boggiano@seld.be>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * For the full copyright and license information, please view the LICENSE
 | 
				
			||||||
 | 
					 * file that was distributed with this source code.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Composer\Autoload;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *     $loader = new \Composer\Autoload\ClassLoader();
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *     // register classes with namespaces
 | 
				
			||||||
 | 
					 *     $loader->add('Symfony\Component', __DIR__.'/component');
 | 
				
			||||||
 | 
					 *     $loader->add('Symfony',           __DIR__.'/framework');
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *     // activate the autoloader
 | 
				
			||||||
 | 
					 *     $loader->register();
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *     // to enable searching the include path (eg. for PEAR packages)
 | 
				
			||||||
 | 
					 *     $loader->setUseIncludePath(true);
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * In this example, if you try to use a class in the Symfony\Component
 | 
				
			||||||
 | 
					 * namespace or one of its children (Symfony\Component\Console for instance),
 | 
				
			||||||
 | 
					 * the autoloader will first look for the class under the component/
 | 
				
			||||||
 | 
					 * directory, and it will then fallback to the framework/ directory if not
 | 
				
			||||||
 | 
					 * found before giving up.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This class is loosely based on the Symfony UniversalClassLoader.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Fabien Potencier <fabien@symfony.com>
 | 
				
			||||||
 | 
					 * @author Jordi Boggiano <j.boggiano@seld.be>
 | 
				
			||||||
 | 
					 * @see    https://www.php-fig.org/psr/psr-0/
 | 
				
			||||||
 | 
					 * @see    https://www.php-fig.org/psr/psr-4/
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class ClassLoader
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /** @var \Closure(string):void */
 | 
				
			||||||
 | 
					    private static $includeFile;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** @var string|null */
 | 
				
			||||||
 | 
					    private $vendorDir;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // PSR-4
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @var array<string, array<string, int>>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private $prefixLengthsPsr4 = array();
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @var array<string, list<string>>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private $prefixDirsPsr4 = array();
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @var list<string>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private $fallbackDirsPsr4 = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // PSR-0
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * List of PSR-0 prefixes
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @var array<string, array<string, list<string>>>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private $prefixesPsr0 = array();
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @var list<string>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private $fallbackDirsPsr0 = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** @var bool */
 | 
				
			||||||
 | 
					    private $useIncludePath = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @var array<string, string>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private $classMap = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** @var bool */
 | 
				
			||||||
 | 
					    private $classMapAuthoritative = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @var array<string, bool>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private $missingClasses = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** @var string|null */
 | 
				
			||||||
 | 
					    private $apcuPrefix;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @var array<string, self>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private static $registeredLoaders = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @param string|null $vendorDir
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function __construct($vendorDir = null)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->vendorDir = $vendorDir;
 | 
				
			||||||
 | 
					        self::initializeIncludeClosure();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @return array<string, list<string>>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function getPrefixes()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (!empty($this->prefixesPsr0)) {
 | 
				
			||||||
 | 
					            return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return array();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @return array<string, list<string>>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function getPrefixesPsr4()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->prefixDirsPsr4;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @return list<string>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function getFallbackDirs()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->fallbackDirsPsr0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @return list<string>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function getFallbackDirsPsr4()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->fallbackDirsPsr4;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @return array<string, string> Array of classname => path
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function getClassMap()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->classMap;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @param array<string, string> $classMap Class to filename map
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function addClassMap(array $classMap)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if ($this->classMap) {
 | 
				
			||||||
 | 
					            $this->classMap = array_merge($this->classMap, $classMap);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            $this->classMap = $classMap;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Registers a set of PSR-0 directories for a given prefix, either
 | 
				
			||||||
 | 
					     * appending or prepending to the ones previously set for this prefix.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param string              $prefix  The prefix
 | 
				
			||||||
 | 
					     * @param list<string>|string $paths   The PSR-0 root directories
 | 
				
			||||||
 | 
					     * @param bool                $prepend Whether to prepend the directories
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function add($prefix, $paths, $prepend = false)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $paths = (array) $paths;
 | 
				
			||||||
 | 
					        if (!$prefix) {
 | 
				
			||||||
 | 
					            if ($prepend) {
 | 
				
			||||||
 | 
					                $this->fallbackDirsPsr0 = array_merge(
 | 
				
			||||||
 | 
					                    $paths,
 | 
				
			||||||
 | 
					                    $this->fallbackDirsPsr0
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                $this->fallbackDirsPsr0 = array_merge(
 | 
				
			||||||
 | 
					                    $this->fallbackDirsPsr0,
 | 
				
			||||||
 | 
					                    $paths
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $first = $prefix[0];
 | 
				
			||||||
 | 
					        if (!isset($this->prefixesPsr0[$first][$prefix])) {
 | 
				
			||||||
 | 
					            $this->prefixesPsr0[$first][$prefix] = $paths;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if ($prepend) {
 | 
				
			||||||
 | 
					            $this->prefixesPsr0[$first][$prefix] = array_merge(
 | 
				
			||||||
 | 
					                $paths,
 | 
				
			||||||
 | 
					                $this->prefixesPsr0[$first][$prefix]
 | 
				
			||||||
 | 
					            );
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            $this->prefixesPsr0[$first][$prefix] = array_merge(
 | 
				
			||||||
 | 
					                $this->prefixesPsr0[$first][$prefix],
 | 
				
			||||||
 | 
					                $paths
 | 
				
			||||||
 | 
					            );
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Registers a set of PSR-4 directories for a given namespace, either
 | 
				
			||||||
 | 
					     * appending or prepending to the ones previously set for this namespace.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param string              $prefix  The prefix/namespace, with trailing '\\'
 | 
				
			||||||
 | 
					     * @param list<string>|string $paths   The PSR-4 base directories
 | 
				
			||||||
 | 
					     * @param bool                $prepend Whether to prepend the directories
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @throws \InvalidArgumentException
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function addPsr4($prefix, $paths, $prepend = false)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $paths = (array) $paths;
 | 
				
			||||||
 | 
					        if (!$prefix) {
 | 
				
			||||||
 | 
					            // Register directories for the root namespace.
 | 
				
			||||||
 | 
					            if ($prepend) {
 | 
				
			||||||
 | 
					                $this->fallbackDirsPsr4 = array_merge(
 | 
				
			||||||
 | 
					                    $paths,
 | 
				
			||||||
 | 
					                    $this->fallbackDirsPsr4
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                $this->fallbackDirsPsr4 = array_merge(
 | 
				
			||||||
 | 
					                    $this->fallbackDirsPsr4,
 | 
				
			||||||
 | 
					                    $paths
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
 | 
				
			||||||
 | 
					            // Register directories for a new namespace.
 | 
				
			||||||
 | 
					            $length = strlen($prefix);
 | 
				
			||||||
 | 
					            if ('\\' !== $prefix[$length - 1]) {
 | 
				
			||||||
 | 
					                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
 | 
				
			||||||
 | 
					            $this->prefixDirsPsr4[$prefix] = $paths;
 | 
				
			||||||
 | 
					        } elseif ($prepend) {
 | 
				
			||||||
 | 
					            // Prepend directories for an already registered namespace.
 | 
				
			||||||
 | 
					            $this->prefixDirsPsr4[$prefix] = array_merge(
 | 
				
			||||||
 | 
					                $paths,
 | 
				
			||||||
 | 
					                $this->prefixDirsPsr4[$prefix]
 | 
				
			||||||
 | 
					            );
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            // Append directories for an already registered namespace.
 | 
				
			||||||
 | 
					            $this->prefixDirsPsr4[$prefix] = array_merge(
 | 
				
			||||||
 | 
					                $this->prefixDirsPsr4[$prefix],
 | 
				
			||||||
 | 
					                $paths
 | 
				
			||||||
 | 
					            );
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Registers a set of PSR-0 directories for a given prefix,
 | 
				
			||||||
 | 
					     * replacing any others previously set for this prefix.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param string              $prefix The prefix
 | 
				
			||||||
 | 
					     * @param list<string>|string $paths  The PSR-0 base directories
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function set($prefix, $paths)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (!$prefix) {
 | 
				
			||||||
 | 
					            $this->fallbackDirsPsr0 = (array) $paths;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Registers a set of PSR-4 directories for a given namespace,
 | 
				
			||||||
 | 
					     * replacing any others previously set for this namespace.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param string              $prefix The prefix/namespace, with trailing '\\'
 | 
				
			||||||
 | 
					     * @param list<string>|string $paths  The PSR-4 base directories
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @throws \InvalidArgumentException
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function setPsr4($prefix, $paths)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (!$prefix) {
 | 
				
			||||||
 | 
					            $this->fallbackDirsPsr4 = (array) $paths;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            $length = strlen($prefix);
 | 
				
			||||||
 | 
					            if ('\\' !== $prefix[$length - 1]) {
 | 
				
			||||||
 | 
					                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
 | 
				
			||||||
 | 
					            $this->prefixDirsPsr4[$prefix] = (array) $paths;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Turns on searching the include path for class files.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param bool $useIncludePath
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function setUseIncludePath($useIncludePath)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->useIncludePath = $useIncludePath;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Can be used to check if the autoloader uses the include path to check
 | 
				
			||||||
 | 
					     * for classes.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return bool
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function getUseIncludePath()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->useIncludePath;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Turns off searching the prefix and fallback directories for classes
 | 
				
			||||||
 | 
					     * that have not been registered with the class map.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param bool $classMapAuthoritative
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function setClassMapAuthoritative($classMapAuthoritative)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->classMapAuthoritative = $classMapAuthoritative;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Should class lookup fail if not found in the current class map?
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return bool
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function isClassMapAuthoritative()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->classMapAuthoritative;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param string|null $apcuPrefix
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function setApcuPrefix($apcuPrefix)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The APCu prefix in use, or null if APCu caching is not enabled.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return string|null
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function getApcuPrefix()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return $this->apcuPrefix;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Registers this instance as an autoloader.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param bool $prepend Whether to prepend the autoloader or not
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function register($prepend = false)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (null === $this->vendorDir) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ($prepend) {
 | 
				
			||||||
 | 
					            self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            unset(self::$registeredLoaders[$this->vendorDir]);
 | 
				
			||||||
 | 
					            self::$registeredLoaders[$this->vendorDir] = $this;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Unregisters this instance as an autoloader.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function unregister()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        spl_autoload_unregister(array($this, 'loadClass'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (null !== $this->vendorDir) {
 | 
				
			||||||
 | 
					            unset(self::$registeredLoaders[$this->vendorDir]);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Loads the given class or interface.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param  string    $class The name of the class
 | 
				
			||||||
 | 
					     * @return true|null True if loaded, null otherwise
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function loadClass($class)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if ($file = $this->findFile($class)) {
 | 
				
			||||||
 | 
					            $includeFile = self::$includeFile;
 | 
				
			||||||
 | 
					            $includeFile($file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Finds the path to the file where the class is defined.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param string $class The name of the class
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return string|false The path if found, false otherwise
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function findFile($class)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // class map lookup
 | 
				
			||||||
 | 
					        if (isset($this->classMap[$class])) {
 | 
				
			||||||
 | 
					            return $this->classMap[$class];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (null !== $this->apcuPrefix) {
 | 
				
			||||||
 | 
					            $file = apcu_fetch($this->apcuPrefix.$class, $hit);
 | 
				
			||||||
 | 
					            if ($hit) {
 | 
				
			||||||
 | 
					                return $file;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $file = $this->findFileWithExtension($class, '.php');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Search for Hack files if we are running on HHVM
 | 
				
			||||||
 | 
					        if (false === $file && defined('HHVM_VERSION')) {
 | 
				
			||||||
 | 
					            $file = $this->findFileWithExtension($class, '.hh');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (null !== $this->apcuPrefix) {
 | 
				
			||||||
 | 
					            apcu_add($this->apcuPrefix.$class, $file);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (false === $file) {
 | 
				
			||||||
 | 
					            // Remember that this class does not exist.
 | 
				
			||||||
 | 
					            $this->missingClasses[$class] = true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $file;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Returns the currently registered loaders keyed by their corresponding vendor directories.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return array<string, self>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static function getRegisteredLoaders()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return self::$registeredLoaders;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @param  string       $class
 | 
				
			||||||
 | 
					     * @param  string       $ext
 | 
				
			||||||
 | 
					     * @return string|false
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private function findFileWithExtension($class, $ext)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // PSR-4 lookup
 | 
				
			||||||
 | 
					        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $first = $class[0];
 | 
				
			||||||
 | 
					        if (isset($this->prefixLengthsPsr4[$first])) {
 | 
				
			||||||
 | 
					            $subPath = $class;
 | 
				
			||||||
 | 
					            while (false !== $lastPos = strrpos($subPath, '\\')) {
 | 
				
			||||||
 | 
					                $subPath = substr($subPath, 0, $lastPos);
 | 
				
			||||||
 | 
					                $search = $subPath . '\\';
 | 
				
			||||||
 | 
					                if (isset($this->prefixDirsPsr4[$search])) {
 | 
				
			||||||
 | 
					                    $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
 | 
				
			||||||
 | 
					                    foreach ($this->prefixDirsPsr4[$search] as $dir) {
 | 
				
			||||||
 | 
					                        if (file_exists($file = $dir . $pathEnd)) {
 | 
				
			||||||
 | 
					                            return $file;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // PSR-4 fallback dirs
 | 
				
			||||||
 | 
					        foreach ($this->fallbackDirsPsr4 as $dir) {
 | 
				
			||||||
 | 
					            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
 | 
				
			||||||
 | 
					                return $file;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // PSR-0 lookup
 | 
				
			||||||
 | 
					        if (false !== $pos = strrpos($class, '\\')) {
 | 
				
			||||||
 | 
					            // namespaced class name
 | 
				
			||||||
 | 
					            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
 | 
				
			||||||
 | 
					                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            // PEAR-like class name
 | 
				
			||||||
 | 
					            $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (isset($this->prefixesPsr0[$first])) {
 | 
				
			||||||
 | 
					            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
 | 
				
			||||||
 | 
					                if (0 === strpos($class, $prefix)) {
 | 
				
			||||||
 | 
					                    foreach ($dirs as $dir) {
 | 
				
			||||||
 | 
					                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
 | 
				
			||||||
 | 
					                            return $file;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // PSR-0 fallback dirs
 | 
				
			||||||
 | 
					        foreach ($this->fallbackDirsPsr0 as $dir) {
 | 
				
			||||||
 | 
					            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
 | 
				
			||||||
 | 
					                return $file;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // PSR-0 include paths.
 | 
				
			||||||
 | 
					        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
 | 
				
			||||||
 | 
					            return $file;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private static function initializeIncludeClosure()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (self::$includeFile !== null) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /**
 | 
				
			||||||
 | 
					         * Scope isolated include.
 | 
				
			||||||
 | 
					         *
 | 
				
			||||||
 | 
					         * Prevents access to $this/self from included files.
 | 
				
			||||||
 | 
					         *
 | 
				
			||||||
 | 
					         * @param  string $file
 | 
				
			||||||
 | 
					         * @return void
 | 
				
			||||||
 | 
					         */
 | 
				
			||||||
 | 
					        self::$includeFile = \Closure::bind(static function($file) {
 | 
				
			||||||
 | 
					            include $file;
 | 
				
			||||||
 | 
					        }, null, null);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										21
									
								
								vendor/composer/autoload_classmap.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								vendor/composer/autoload_classmap.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// autoload_classmap.php @generated by Composer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$vendorDir = dirname(__DIR__);
 | 
				
			||||||
 | 
					$baseDir = dirname($vendorDir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return array(
 | 
				
			||||||
 | 
					    'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
 | 
				
			||||||
 | 
					    'DateError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateError.php',
 | 
				
			||||||
 | 
					    'DateException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateException.php',
 | 
				
			||||||
 | 
					    'DateInvalidOperationException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php',
 | 
				
			||||||
 | 
					    'DateInvalidTimeZoneException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php',
 | 
				
			||||||
 | 
					    'DateMalformedIntervalStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php',
 | 
				
			||||||
 | 
					    'DateMalformedPeriodStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php',
 | 
				
			||||||
 | 
					    'DateMalformedStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php',
 | 
				
			||||||
 | 
					    'DateObjectError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateObjectError.php',
 | 
				
			||||||
 | 
					    'DateRangeError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php',
 | 
				
			||||||
 | 
					    'Override' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/Override.php',
 | 
				
			||||||
 | 
					    'SQLite3Exception' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php',
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
							
								
								
									
										170
									
								
								vendor/composer/autoload_static.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								vendor/composer/autoload_static.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,170 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// autoload_static.php @generated by Composer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Composer\Autoload;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ComposerStaticInitfe2a84e2cd498dd89c8e792659f7a55c
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public static $files = array (
 | 
				
			||||||
 | 
					        '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
 | 
				
			||||||
 | 
					        '662a729f963d39afe703c9d9b7ab4a8c' => __DIR__ . '/..' . '/symfony/polyfill-php83/bootstrap.php',
 | 
				
			||||||
 | 
					        '60799491728b879e74601d83e38b2cad' => __DIR__ . '/..' . '/illuminate/collections/helpers.php',
 | 
				
			||||||
 | 
					        '2203a247e6fda86070a5e4e07aed533a' => __DIR__ . '/..' . '/symfony/clock/Resources/now.php',
 | 
				
			||||||
 | 
					        'a1105708a18b76903365ca1c4aa61b02' => __DIR__ . '/..' . '/symfony/translation/Resources/functions.php',
 | 
				
			||||||
 | 
					        '72579e7bd17821bb1321b87411366eae' => __DIR__ . '/..' . '/illuminate/support/helpers.php',
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static $prefixLengthsPsr4 = array (
 | 
				
			||||||
 | 
					        'v' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            'voku\\' => 5,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'a' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            'app\\' => 4,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'S' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            'Symfony\\Polyfill\\Php83\\' => 23,
 | 
				
			||||||
 | 
					            'Symfony\\Polyfill\\Mbstring\\' => 26,
 | 
				
			||||||
 | 
					            'Symfony\\Contracts\\Translation\\' => 30,
 | 
				
			||||||
 | 
					            'Symfony\\Component\\Translation\\' => 30,
 | 
				
			||||||
 | 
					            'Symfony\\Component\\Clock\\' => 24,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'P' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            'Psr\\SimpleCache\\' => 16,
 | 
				
			||||||
 | 
					            'Psr\\Container\\' => 14,
 | 
				
			||||||
 | 
					            'Psr\\Clock\\' => 10,
 | 
				
			||||||
 | 
					            'Phroute\\Phroute\\' => 16,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'I' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            'Illuminate\\Support\\' => 19,
 | 
				
			||||||
 | 
					            'Illuminate\\Database\\' => 20,
 | 
				
			||||||
 | 
					            'Illuminate\\Contracts\\' => 21,
 | 
				
			||||||
 | 
					            'Illuminate\\Container\\' => 21,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'D' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            'Doctrine\\Inflector\\' => 19,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'C' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            'Carbon\\Doctrine\\' => 16,
 | 
				
			||||||
 | 
					            'Carbon\\' => 7,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'B' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            'Brick\\Math\\' => 11,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static $prefixDirsPsr4 = array (
 | 
				
			||||||
 | 
					        'voku\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/voku/portable-ascii/src/voku',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'app\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/../..' . '/app',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Symfony\\Polyfill\\Php83\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/symfony/polyfill-php83',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Symfony\\Polyfill\\Mbstring\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Symfony\\Contracts\\Translation\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/symfony/translation-contracts',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Symfony\\Component\\Translation\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/symfony/translation',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Symfony\\Component\\Clock\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/symfony/clock',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Psr\\SimpleCache\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/psr/simple-cache/src',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Psr\\Container\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/psr/container/src',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Psr\\Clock\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/psr/clock/src',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Phroute\\Phroute\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/craft-group/phroute/src/Phroute',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Illuminate\\Support\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/illuminate/collections',
 | 
				
			||||||
 | 
					            1 => __DIR__ . '/..' . '/illuminate/conditionable',
 | 
				
			||||||
 | 
					            2 => __DIR__ . '/..' . '/illuminate/macroable',
 | 
				
			||||||
 | 
					            3 => __DIR__ . '/..' . '/illuminate/support',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Illuminate\\Database\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/illuminate/database',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Illuminate\\Contracts\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/illuminate/contracts',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Illuminate\\Container\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/illuminate/container',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Doctrine\\Inflector\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Carbon\\Doctrine\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Carbon\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'Brick\\Math\\' => 
 | 
				
			||||||
 | 
					        array (
 | 
				
			||||||
 | 
					            0 => __DIR__ . '/..' . '/brick/math/src',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static $classMap = array (
 | 
				
			||||||
 | 
					        'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
 | 
				
			||||||
 | 
					        'DateError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateError.php',
 | 
				
			||||||
 | 
					        'DateException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateException.php',
 | 
				
			||||||
 | 
					        'DateInvalidOperationException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php',
 | 
				
			||||||
 | 
					        'DateInvalidTimeZoneException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php',
 | 
				
			||||||
 | 
					        'DateMalformedIntervalStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php',
 | 
				
			||||||
 | 
					        'DateMalformedPeriodStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php',
 | 
				
			||||||
 | 
					        'DateMalformedStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php',
 | 
				
			||||||
 | 
					        'DateObjectError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateObjectError.php',
 | 
				
			||||||
 | 
					        'DateRangeError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php',
 | 
				
			||||||
 | 
					        'Override' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/Override.php',
 | 
				
			||||||
 | 
					        'SQLite3Exception' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php',
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static function getInitializer(ClassLoader $loader)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return \Closure::bind(function () use ($loader) {
 | 
				
			||||||
 | 
					            $loader->prefixLengthsPsr4 = ComposerStaticInitfe2a84e2cd498dd89c8e792659f7a55c::$prefixLengthsPsr4;
 | 
				
			||||||
 | 
					            $loader->prefixDirsPsr4 = ComposerStaticInitfe2a84e2cd498dd89c8e792659f7a55c::$prefixDirsPsr4;
 | 
				
			||||||
 | 
					            $loader->classMap = ComposerStaticInitfe2a84e2cd498dd89c8e792659f7a55c::$classMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }, null, ClassLoader::class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										236
									
								
								vendor/composer/installed.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								vendor/composer/installed.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,236 @@
 | 
				
			|||||||
 | 
					<?php return array(
 | 
				
			||||||
 | 
					    'root' => array(
 | 
				
			||||||
 | 
					        'name' => 'illuminate-example/eloquent',
 | 
				
			||||||
 | 
					        'pretty_version' => 'dev-master',
 | 
				
			||||||
 | 
					        'version' => 'dev-master',
 | 
				
			||||||
 | 
					        'reference' => '2c199f1ce1c1c8d41078cda014e5289dffb7dc13',
 | 
				
			||||||
 | 
					        'type' => 'project',
 | 
				
			||||||
 | 
					        'install_path' => __DIR__ . '/../../',
 | 
				
			||||||
 | 
					        'aliases' => array(),
 | 
				
			||||||
 | 
					        'dev' => true,
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    'versions' => array(
 | 
				
			||||||
 | 
					        'brick/math' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => '0.12.1',
 | 
				
			||||||
 | 
					            'version' => '0.12.1.0',
 | 
				
			||||||
 | 
					            'reference' => 'f510c0a40911935b77b86859eb5223d58d660df1',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../brick/math',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'carbonphp/carbon-doctrine-types' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => '3.2.0',
 | 
				
			||||||
 | 
					            'version' => '3.2.0.0',
 | 
				
			||||||
 | 
					            'reference' => '18ba5ddfec8976260ead6e866180bd5d2f71aa1d',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../carbonphp/carbon-doctrine-types',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'craft-group/phroute' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v2.1.2',
 | 
				
			||||||
 | 
					            'version' => '2.1.2.0',
 | 
				
			||||||
 | 
					            'reference' => '49180faae85e0ba3b0165901ad46e08508c81fac',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../craft-group/phroute',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'doctrine/inflector' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => '2.0.10',
 | 
				
			||||||
 | 
					            'version' => '2.0.10.0',
 | 
				
			||||||
 | 
					            'reference' => '5817d0659c5b50c9b950feb9af7b9668e2c436bc',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../doctrine/inflector',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'illuminate-example/eloquent' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'dev-master',
 | 
				
			||||||
 | 
					            'version' => 'dev-master',
 | 
				
			||||||
 | 
					            'reference' => '2c199f1ce1c1c8d41078cda014e5289dffb7dc13',
 | 
				
			||||||
 | 
					            'type' => 'project',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../../',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'illuminate/collections' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v11.14.0',
 | 
				
			||||||
 | 
					            'version' => '11.14.0.0',
 | 
				
			||||||
 | 
					            'reference' => '358fd6dcce6927ee9d7cf520fa619f4597020d52',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../illuminate/collections',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'illuminate/conditionable' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v11.14.0',
 | 
				
			||||||
 | 
					            'version' => '11.14.0.0',
 | 
				
			||||||
 | 
					            'reference' => '362dd761b9920367bca1427a902158225e9e3a23',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../illuminate/conditionable',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'illuminate/container' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v11.14.0',
 | 
				
			||||||
 | 
					            'version' => '11.14.0.0',
 | 
				
			||||||
 | 
					            'reference' => '280405e0b577504b97feae0e7c7f5399816ccff1',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../illuminate/container',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'illuminate/contracts' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v11.14.0',
 | 
				
			||||||
 | 
					            'version' => '11.14.0.0',
 | 
				
			||||||
 | 
					            'reference' => 'eb8ccfbc5905c5631712d157cccdd7bc9db692e0',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../illuminate/contracts',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'illuminate/database' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v11.14.0',
 | 
				
			||||||
 | 
					            'version' => '11.14.0.0',
 | 
				
			||||||
 | 
					            'reference' => '6576f6fcc871a6ad173b6e246e8d2c63cd7cfe1a',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../illuminate/database',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'illuminate/macroable' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v11.14.0',
 | 
				
			||||||
 | 
					            'version' => '11.14.0.0',
 | 
				
			||||||
 | 
					            'reference' => 'e1cb9e51b9ed5d3c9bc1ab431d0a52fe42a990ed',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../illuminate/macroable',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'illuminate/support' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v11.14.0',
 | 
				
			||||||
 | 
					            'version' => '11.14.0.0',
 | 
				
			||||||
 | 
					            'reference' => 'a8f299ed76d52fc048decada3571628e65fa5c41',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../illuminate/support',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'nesbot/carbon' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => '3.6.0',
 | 
				
			||||||
 | 
					            'version' => '3.6.0.0',
 | 
				
			||||||
 | 
					            'reference' => '39c8ef752db6865717cc3fba63970c16f057982c',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../nesbot/carbon',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'psr/clock' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => '1.0.0',
 | 
				
			||||||
 | 
					            'version' => '1.0.0.0',
 | 
				
			||||||
 | 
					            'reference' => 'e41a24703d4560fd0acb709162f73b8adfc3aa0d',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../psr/clock',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'psr/clock-implementation' => array(
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					            'provided' => array(
 | 
				
			||||||
 | 
					                0 => '1.0',
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'psr/container' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => '2.0.2',
 | 
				
			||||||
 | 
					            'version' => '2.0.2.0',
 | 
				
			||||||
 | 
					            'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../psr/container',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'psr/container-implementation' => array(
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					            'provided' => array(
 | 
				
			||||||
 | 
					                0 => '1.1|2.0',
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'psr/simple-cache' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => '3.0.0',
 | 
				
			||||||
 | 
					            'version' => '3.0.0.0',
 | 
				
			||||||
 | 
					            'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../psr/simple-cache',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'spatie/once' => array(
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					            'replaced' => array(
 | 
				
			||||||
 | 
					                0 => '*',
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'symfony/clock' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v7.1.1',
 | 
				
			||||||
 | 
					            'version' => '7.1.1.0',
 | 
				
			||||||
 | 
					            'reference' => '3dfc8b084853586de51dd1441c6242c76a28cbe7',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../symfony/clock',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'symfony/polyfill-mbstring' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v1.30.0',
 | 
				
			||||||
 | 
					            'version' => '1.30.0.0',
 | 
				
			||||||
 | 
					            'reference' => 'fd22ab50000ef01661e2a31d850ebaa297f8e03c',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'symfony/polyfill-php83' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v1.30.0',
 | 
				
			||||||
 | 
					            'version' => '1.30.0.0',
 | 
				
			||||||
 | 
					            'reference' => 'dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../symfony/polyfill-php83',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'symfony/translation' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v7.1.1',
 | 
				
			||||||
 | 
					            'version' => '7.1.1.0',
 | 
				
			||||||
 | 
					            'reference' => 'cf5ae136e124fc7681b34ce9fac9d5b9ae8ceee3',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../symfony/translation',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'symfony/translation-contracts' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => 'v3.5.0',
 | 
				
			||||||
 | 
					            'version' => '3.5.0.0',
 | 
				
			||||||
 | 
					            'reference' => 'b9d2189887bb6b2e0367a9fc7136c5239ab9b05a',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../symfony/translation-contracts',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'symfony/translation-implementation' => array(
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					            'provided' => array(
 | 
				
			||||||
 | 
					                0 => '2.3|3.0',
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        'voku/portable-ascii' => array(
 | 
				
			||||||
 | 
					            'pretty_version' => '2.0.1',
 | 
				
			||||||
 | 
					            'version' => '2.0.1.0',
 | 
				
			||||||
 | 
					            'reference' => 'b56450eed252f6801410d810c8e1727224ae0743',
 | 
				
			||||||
 | 
					            'type' => 'library',
 | 
				
			||||||
 | 
					            'install_path' => __DIR__ . '/../voku/portable-ascii',
 | 
				
			||||||
 | 
					            'aliases' => array(),
 | 
				
			||||||
 | 
					            'dev_requirement' => false,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
		Reference in New Issue
	
	Block a user