如何使用 compose autoload 和 psr-4 自动加载文件
How to autoload files using compose autoload and psr-4
我正在尝试自动加载文件并为我的应用程序设置一个入口点。我没有使用框架,而是使用 OOP。
我的 composer.json 文件是:
{
"require": {
"tebazil/db-seeder": "^0.0.0"
},
"autoload": {
"psr-4": {
"vendor\": "vendor/",
"App\": "src/classes/"
},
"files": [
"src/functions.php"
]
}
}
在此文件中 functions.php 我想包含 vendor/autoload.php 文件。
我不确定如何为应用程序创建这个入口点以及需要这个 vendor/autoload 文件,因为我已经使用框架来实现这个目标。
这是 functions.php 的当前内容,但是当我渲染 index.html 视图文件时还有另一个问题,但是有 ajax 请求。
但是,为应用程序创建 bootstrap 文件并自动加载必要文件的正确方法是什么?
<?php
namespace App;
require_once __DIR__ . '/../vendor/autoload.php';
use App\Db;
use App\User;
class Functions
{
public function render()
{
ob_start();
include(__DIR__ . '/../index.html');
$content = ob_get_contents();
ob_end_clean();
echo $content;
}
}
if(!($_GET && array_key_exists('name', $_GET))) {
$functions = new Functions();
$functions->render();
}
if($_GET && array_key_exists('name', $_GET)){
$user = new User();
$users = $user->getUsers();
}
据我所知,您不需要在 Composer 中注册 "functions.php"。您的应用程序可能具有以下结构:
- app_folder/
- src/
- classes/
- index.html
- public/
- functions.php
- vendor/
- ...
其中 "functions.php" 文件用作应用程序入口点。将您的 Web 服务器指向 "public" 文件夹,这样所有其他文件都可以由您的 php 代码访问,但用户不能访问。
您可以在 "functions.php" 中实现您的路由或类似任务,并将模型和视图等组件放置到 "src",您将获得简单而结构化的应用程序。
我正在尝试自动加载文件并为我的应用程序设置一个入口点。我没有使用框架,而是使用 OOP。 我的 composer.json 文件是:
{
"require": {
"tebazil/db-seeder": "^0.0.0"
},
"autoload": {
"psr-4": {
"vendor\": "vendor/",
"App\": "src/classes/"
},
"files": [
"src/functions.php"
]
}
}
在此文件中 functions.php 我想包含 vendor/autoload.php 文件。 我不确定如何为应用程序创建这个入口点以及需要这个 vendor/autoload 文件,因为我已经使用框架来实现这个目标。
这是 functions.php 的当前内容,但是当我渲染 index.html 视图文件时还有另一个问题,但是有 ajax 请求。 但是,为应用程序创建 bootstrap 文件并自动加载必要文件的正确方法是什么?
<?php
namespace App;
require_once __DIR__ . '/../vendor/autoload.php';
use App\Db;
use App\User;
class Functions
{
public function render()
{
ob_start();
include(__DIR__ . '/../index.html');
$content = ob_get_contents();
ob_end_clean();
echo $content;
}
}
if(!($_GET && array_key_exists('name', $_GET))) {
$functions = new Functions();
$functions->render();
}
if($_GET && array_key_exists('name', $_GET)){
$user = new User();
$users = $user->getUsers();
}
据我所知,您不需要在 Composer 中注册 "functions.php"。您的应用程序可能具有以下结构:
- app_folder/
- src/
- classes/
- index.html
- public/
- functions.php
- vendor/
- ...
其中 "functions.php" 文件用作应用程序入口点。将您的 Web 服务器指向 "public" 文件夹,这样所有其他文件都可以由您的 php 代码访问,但用户不能访问。
您可以在 "functions.php" 中实现您的路由或类似任务,并将模型和视图等组件放置到 "src",您将获得简单而结构化的应用程序。