问题标签 [psr-4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何使用作曲家包含 phpmailer 5.2?
我正在尝试实例化我使用 Composer 安装的 PHP 邮件程序类。该类位于 vendor\phpmailer\phpmailer\class.phpmailer.php
我正在尝试在 SmtpHandler 中加载此类,如下所示:
我的 composer.json 文件正在自动加载我的 php 类,如下所示:
当 $this->mail = new PHPMailer; 被调用,我收到一个错误致命错误:第 8 行的 /var/www/proj/Project/src/SmtpHandler.php 中找不到类 'Fusion\PHPMailer'
我需要使用 vendor\phpmailer\phpmailer\class.phpmailer 吗?还是我使用 psr-4 错了?
谢谢
php - 作曲家 PSR4 自动加载问题
我正在尝试在我的项目中实现 PSR-4 自动加载。这是我继承的一个现有应用程序,目前不使用 OOP(它都是脚本化的),但我希望随着时间的推移进行重构以使用 OOP,而 PSR-4 对我来说至关重要,因为它最终将成为一个大型项目.
目前我们不依赖任何外部库(完全内部编写的旧应用程序),因此此时 composer 仅用于自动加载,但最终将使用第三方包,例如 phpunit。
我的服务器上的应用程序结构如下所示:
作曲家.json:
当用户成功登录时 login.php 调用 authenticated.php ,并且 authenticated 调用我的 init.php 脚本,其中包含:
是 search.php 有错误。用户通过身份验证后会被重定向到 search.php。
search.php 有以下几行:
OSHelpers.php 命名空间为:namespace Framework\Helpers;
如果使用require_once ,则对 OSHelpers 的静态调用可以正常工作,但是我定义 $current_os 的第二行似乎失败了。
我收到的错误是:
我对它为什么这样做有点茫然?当我按照此视频 ( https://www.youtube.com/watch?v=VGSerlMoIrY ) 中的示例进行操作时,我的示例应用程序运行良好,但尝试以稍微复杂的结构复制它会给我带来问题。
我已经完成了 composer dump-autoload -o,在供应商目录中查看显示我的类定义正确。从供应商/作曲家/autoload_classmap.php:
php - 作曲家 PSR4 奇怪的行为
不久前,我创建了一个树枝扩展。最近我添加了一个命名空间,以便我可以更轻松地与 composer 一起使用它。我已经这样做了几次,它适用于其他文件/类。
问题是,如果我在作曲家中更新或转储自动加载时使用 -o 选项(优化),它只会正确自动加载。
因此,例如,如果我运行composer dumpautoload -o
我的课程,发现没有问题。如果我运行composer dumpautoload
它将不起作用并给我以下错误:
我的扩展类:
我的作曲家文件
文件夹结构
有谁知道是什么原因造成的?我似乎无法弄清楚是什么原因造成的。我猜这与我使用优化时创建类图的作曲家有关。
php - 如何使用 Lumen 或 Slim 框架实现默认路由行为
我正在考虑将 Lumen 或 Slim 用于项目,并想知道是否可以根据目录结构自动加载控制器,而不必注册所有路由。
这就是我希望自动加载工作的方式。
示例目录/类结构:
如果路线是
example.com/foo/bar
==App\Http\Controllers\Foo\BarController::index()
example.com/foo/bar/add
== App\Http\Controllers\Foo\BarController::add()
注册的路由应该优先于自动加载的类。
我找到了一种基于 Opencart 路由方法的方法。他们有超过 396 个控制器的 1145 个不同的公共方法,这些方法都被调用而没有明确说明控制器和方法。这是我的尝试。
.htaccess
RewriteRule ^([^?]*) index.php?route=$1 [L,QSA]
应用程序/Http/routes.php
如果需要的路由与 Opencart 的默认路由不同,则使用.htaccess RewriteRule
或 aresponse->redirect
路由到备用控制器。
我会使用他们的方法,但在
app/Http/routes.php
. 像这样
我是否认为这会使应用程序运行得更快,因为它不必搜索所有已注册的路线以进行匹配?
有没有更好的方法来执行这个自动路由过程?
php - 如何在 Symfony3 中解析自动生成的类
在使用 psr 4 的 Symfony3 项目中,我通过在“var/cache/dev”文件夹中自动生成 php 类来存储配置数据。
这是生成文件的简化副本:
我知道我可以include
或require
文件,但“开发”目录在开发和生产之间发生变化,我在几个地方使用该类。另外,我希望在其他项目中使用这个包,所以我不想在包之外硬编码任何东西。这些文件通常是如何加载的?Symfony 核心中有什么可以帮助的吗?
php - 未找到 psr-4 类
我正在尝试使用 psr-4 设置我的第一个项目,但收到以下错误:
致命错误:未捕获的错误:在 /home/vagrant/Code/testomgeving/index.php:7 中找不到类 'leaseregistratie\Repositories' 堆栈跟踪:
0 {main} 在第 7 行的 /home/vagrant/Code/testomgeving/index.php 中抛出
我的文件夹结构:
索引.php:
开始.php:
用户存储库:
作曲家.json:
我究竟做错了什么?
php - 找不到类 - PSR-4 命名空间自动加载
我想为我写的一个类设置 PSR-4 自动加载。但是我不断收到错误Fatal error: Class 'Glowdemon1\Translxtor\LangParserXML' not found in C:\xampp\htdocs\translator\index.php on line 5
文件夹结构(还不能发布img):
语言解析器XML.class.php
索引.php
作曲家.json
autoload_psr4.php
我看了无数帖子,但没有解决方案。如果您想要更深入地了解,这也发布在https://github.com/glowdemon1/translxtor上。谢谢。
php - 给出 PDO 的实例而不是命名空间名称 - PSR4 使用作曲家自动加载
我正在尝试学习如何使用 PDO。我有一个使用命名空间的非常小的应用程序。我使用作曲家自动加载类。
我正在尝试遵循PHPTheRightWay MVC 方法来处理 PDO,但我失败了。我已经设置了我的 DbModel 类以匹配他们的类,并在我的 php 代码中创建它的一个新实例并解析 PDO 对象。
班级:
页:
但是,我收到以下错误。我不知道为什么会这样。
可捕获的致命错误:传递给 Acme\DbModel::__construct() 的参数 1 必须是 Acme\PDO 的实例,给定的 PDO 实例,在第 9 行的 C:\xampp\htdocs\footballMatch\matchDay.php 中调用并在C:\xampp\htdocs\footballMatch\src\DbModel.php 在第 9 行
添加此类后,我运行composer install
和composer dump-autoload
.
php - PSR-4:自动加载器(composer)和扩展命名空间确保回退php
我的命名空间回退和在 Composer 中使用 PSR-4 加载程序时遇到问题。
我想做的是:
- 有一个可以覆盖/扩展的核心。
- 核心基于接口。
目录结构是这样的:
我没有设置这个配置,所以如果你有更好的建议,那就去吧。
我的作曲家 json 对于 psr-4 是这样的:
我认为如果找不到站点,这将使 ACME\App\Site\View 回退到 ACME\App\View (注意我还没有完成界面部分......)。
我的 site/app/View/Example.php 代码如下:
当我也有 site/app/View/View.php 时,哪个有效。看起来像:
site/src/app/View/View.php 如下所示:
这个应该使用接口(我还没试过)。
所以我真正想做的就是做到这一点,这样我就不必拥有site/app/View/View.php,也不必拥有site/app/View/Example.php——它可以使用网站/src/ACME/app/View/Example.php。
对不起,我是命名空间的新手,所以我可能不会很好地表达它。
我得到的是我认为 ACME\App\Site 会回退到 ACME\App - 它没有?还是我做错了?目前它需要所有文件到位。