2017-03-19 2 views
0

J'utilise autoloader.php en utilisant composer.jsoncharge chargement automatique une seule fois

"autoload": { 
    "classmap": [ 

     ], 
     "psr-4": { 
      "App\\": "app/", 
      "App\\Helpers\\": "app/lib/Helpers", 
      "App\\Traits\\": "app/Traits", 

     } 
    } 

et index.php j'ai

<?php 
require_once 'vendor/autoload.php'; 

si accss une classe en utilisant l'objet dans son index.php fonctionne bien.Maintenant, mon problème est que je dois charger require_once 'vendor/autoload.php'; dans chaque classe pour que cela fonctionne correctement. Il existe une méthode pour l'ajouter une seule fois au démarrage.

par exemple

<?php 
require_once 'vendor/autoload.php'; 

use App\Controllers\HomeController; 

$myclass = new HomeController(); 
$myclass->index(); 

code ci-dessus fonctionne depuis que je l'ai utilisé require_once 'fournisseur/autoload.php' ;. j'ai créé un autre fichier dans un autre répertoire

<?php 
namespace App\test; 

use App\Controllers\HomeController; 

$myclass = new HomeController(); 
$myclass->index(); 

Ici, j'ai également ajouter une nouvelle fois besoin d'une fois. maintenant m essayant d'éviter d'inclure à chaque fois d'inclure autoload.php Merci

Répondre

0

Vous avez seulement besoin d'inclure l'autochargeur Composer une fois dans votre application. Une bonne place est le fichier index.php, qui agit comme le point d'entrée central de votre application.

index.php:

<?php 
require_once 'vendor/autoload.php'; 

// handle the $_GET parameters (e.g. `index.php?controller=home&action=index`) 
// translate them to your controller object 
// then call the controller and action requested 
// hardcoded for now: 

$controller = new \App\Controllers\HomeController(); 
$controller->index(); 

HomeController.php:

<?php 
// this controller is instantiated after `index.php`, 
// 'index.php' loaded the Composer Autoloader already. 
// Autoloading is available at this point. 
// There is no need to set it up again. 

namespace App\Controllers; 

class HomeController 
{ 
    public function index() 
    { 
     echo 'Hello from HomeController->index()'; 
    } 
}