Autoload PSR-4 với Composer (ok)
https://viblo.asia/p/php-autoloading-psr4-and-composer-V3m5Wy0QZO7



Last updated
https://viblo.asia/p/php-autoloading-psr4-and-composer-V3m5Wy0QZO7



Last updated
{
"autoload":
{
"psr-4":
{
"Viblo\\": "src/"
}
}
}<?php
namespace Viblo\Controllers;
use Viblo\Models\User;
class HomeController {
public function actionIndex() {
return (new User)->list();
}
}<?php
namespace Viblo\Models;
class User {
public function list() {
// TODO: get actual data
return [1, 2, 3];
}
}.
├── composer.json
├── index.php
└── src
├── Controllers
│ └── HomeController.php
├── Models
│ └── User.php
└── Views
└── home.php<?php
namespace Viblo\Models;
class User
{
public function list()
{
// TODO: get actual data
return [1, 2, 3];
}
}<?php
namespace Viblo\Controllers;
use Viblo\Models\User;
class HomeController
{
public function actionIndex()
{
return (new User)->list();
}
}{
"autoload": {
"psr-4": {
"Viblo\\": "src/"
}
}
}composer dump-autoloadvendor/composer
├── autoload_classmap.php
├── autoload_files.php
├── autoload_namespaces.php
├── autoload_psr4.php
├── autoload_real.php
├── autoload_static.php
├── ca-bundle
├── ClassLoader.php
├── installed.json
├── installers
└── LICENSE<?php
require __DIR__ . '/vendor/autoload.php';
use Viblo\Controllers\HomeController;
$homeCtrl = new HomeController;
print_r($homeCtrl->actionIndex());
// ...