问题标签 [psr-0]
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 - 整个项目是否应符合 PSR-0
PSR-0 是否能够自动加载任何类或只是库/外部 api:s?
符合 PSR-0 的 MVC 上的示例结构
测试控制器.php
...或者只是用于控制器、模型等的自定义自动加载器...?
php - 任何 PHP IDE 都遵循 PSR 标准?
是否有任何 PHP IDE 遵循 PSR 0 到 PSR 3 标准的所有规则作为其代码格式化标准?
我知道所有 IDE 都遵循特定的代码格式标准,但不确定是否有任何完全/大部分遵循 PSR 0 到 PSR 3 标准。
如果有任何这样的 PHP IDE,请告诉我。
php - PHP PSR-0 Static Class
I'm trying to rewrite an OO PHP site (that loosely follows an MVC structure) so it uses namespaces - and want to follow PSR-0.
In the current site I have a class (called APP) which is full of static methods that I call all over the place to handle things such as getting config data eg; APP::get_config('key')
.
Obviously with namespacing, I would need to call \TheNameSpace\App::get_config('key')
. I use this class frequently, so want to avoid having to prefix the namespace every time I use it. I do call methods in it from within other classes, which would usually be under a sub-namespace - so changing the namespace at the top of the file won't really work.
So, I guess my question is, what is the easiest way to have a 'global' class with methods that I can call anywhere without having to prefix with the namespace each time?
laravel - 在 Laravel 3 中加载 PSR-0 不兼容的库
我需要在 Laravel 中使用不符合 PSR-0 的旧库。
它由几个文件和目录组成,里面有很多“require”、“include”和“require_once”的东西。因此,我尝试将其放入“库/子文件夹”并自动加载入口脚本,但它破坏了框架,并且我不断收到“找不到类'Laravel\Response'”错误。我找不到这个错误的原因,但我猜它以某种方式破坏了 Laravel 的自动加载系统。
如何解决这个问题?我怎样才能加载这种库并保持工作正常?
谢谢!
php - 同一文件上的函数和类:未定义的函数
根据PSR-0定义(自动加载),我有一个包含类和函数定义的文件:
我有那个类的测试,放在同一个命名空间中:
当我尝试访问b()
测试类中的函数时,出现undefined function
错误:
似乎没有任何效果。我怎样才能调用该函数?
php - PSR Autoloader 功能失败
我想我可能在这里遗漏了一些简单的东西,需要第二双眼睛。这失败了,找不到致命的错误类。自动加载功能取自 PSR-0 github 页面。
这是我的 index.php,类位于 Vendor/Package/Example.php,这是内容。
当我这样做时它有效require_once my_autoload('Vendor\Package\Example');
php - Composer 不为库生成自动加载
我已经设置了两个项目,一个“init”和一个库,这是 init 所需的。它们都设置了 PSR-0 自动加载,但库中的自动加载值不会添加到 init 项目中的 vendor/composer/autoload_namespaces.php 中。
来自库的示例 composer.json:
来自需要该库的项目的示例 composer.json:
该库在文件 src/LXP/Library/Something.php 中包含类 LXP\Library\Something。
需要该库的项目在文件 src/LXP/Init/Now.php 中包含类 LXP\Init\Now。
在“init”项目中运行 composer install 时,它会下载库项目并将其正确放入 vendor 中,但 vendor/composer/autoload_namespaces.php 不包含库的自动加载信息,仅包含当前项目的信息。
我究竟做错了什么?如果我在库项目中运行 dump-autoload 则 autoload_namespaces.php 文件是正确的,并且快速引导脚本确认它确实选择了该类。
编辑 - 这是满意生成的 packages.json 的问题。为了修复它,我必须将库的 composer.json 中的自动加载信息添加到我提供给 satis 的 json 文件中,这似乎是不必要的重复,所以我可能做错了。是否有一个地方可以为满足库存储自动加载信息?例如,satis 可以读取它扫描的库中存在的 composer.json 文件吗?
编辑 #2 - Satis 不会从指定为“包”类型的存储库中读取 composer.jsons。事后看来,这是显而易见的,因为“包”用于没有 composer.json 的库,并且是一种将类似 composer 的依赖管理包装在它们周围的方法。
将 satis.json 的存储库更改为 'vcs' 类型意味着读取了 composer.json,并且信息(包括自动加载规范)被解析并存储在 packages.json 中。
@Seldaek - 感谢您提出我的 satis 配置是问题所在,我希望这可以澄清我所在职位的其他任何人的 satis / composer 行为。
php - Symfony ClassLoader 无法加载
我正在开发一个供个人使用的小型 php 框架。我正在尝试使用 Symfony 中使用的 UniversalClassLoader 自动加载类,但是当我尝试使用这些类时出现错误
致命错误:在第 14 行的 /opt/lampp/htdocs/web/globeapi/Start.php 中找不到类“控制器”
这是Start.php
文件代码。
这是Controller类的代码
这是 Auto.php 文件的代码,它返回用于自动加载的类数组。
php - UniversalClassLoader 没有加载类
我编写了一个小型 php mvc 框架,我想自动加载我的类,如控制器、模型等。为此,我尝试使用 Symfony 的 UniversalClassLoader,他只是不会加载类,当我尝试使用它们时,我得到了这个错误
这是 Bootstrap.php
这是Controller.php
我也试过 MapClassLoader 但结果是一样的。
php - 具有相同名称和 PSR-0 命名空间的类方法内的 PHP 类声明,错误
我已经创建了自己的 MVC 框架,它是 PSR-0 兼容的 atm。并使用 php-ActiveRecord 作为 ORM。我发现了一个问题,我从一个名为 的控制器(User
存在于命名空间TapMVC\Application
中)尝试调用一个 ActiveRecord 模型,它也被称为User
但存在于命名空间中,TapMVC\Db
如下所示:
这给出了以下错误:
无法在第 12 行的 /path/to/project/app/Controllers/user.php 中重新声明类 TapMVC\Application\User
其中第 12 行是用户控制器的原型/声明。
为什么我不能这样做?我认为如果你的类在不同的命名空间中并且在实例化时有命名空间前缀,那么使用相同的名称就可以了吗?此外,看起来数据模型是在控制器之前通过自动加载声明的(因为它是触发错误的用户控制器声明),那么为什么当数据模型在命名空间TapMVC\Db
而不是TapMVC\Application
控制器在哪里时会发生冲突呢?
我可以看到,即使您定义了不同的名称空间,PHP 也会在与活动文件中的名称空间相同的名称空间下声明该对象,但我不确定。
希望有人可以提供帮助,所以我不需要像这样命名我的数据模型:(ProjectName-prefix)User
并编辑数据库表以获得用户模型和用户控制器。