PHP-Symfony2.4我可以在一个文件中有多个类吗?

PHP-Symfony2.4我可以在一个文件中有多个类吗?,php,symfony,code-reuse,Php,Symfony,Code Reuse,我使用的是将视频从我的网站上传到他们的服务器空间 现在的重点是——在他们的库中有一些PHP文件,其中存在多个类,并且在同一个文件中不存在具有相同文件名的类 i、 e.看看,该文件中没有名为OAuth的类 我脑海中提出的问题是 当我创建任何PHP类文件时,我可以在一个文件中创建多个类,然后我可以在代码中使用该文件,或者我也可以在其他项目中使用该可重用代码 创建这样的文件应该是一种好的做法吗 如果这个类有15到20行长,那么我应该创建一个单独的文件,或者只在一个文件中包含它,比如OAuth.php

我使用的是将视频从我的网站上传到他们的服务器空间

现在的重点是——在他们的库中有一些PHP文件,其中存在多个类,并且在同一个文件中不存在具有相同文件名的类

i、 e.看看,该文件中没有名为
OAuth
的类

我脑海中提出的问题是

当我创建任何PHP类文件时,我可以在一个文件中创建多个类,然后我可以在代码中使用该文件,或者我也可以在其他项目中使用该可重用代码

创建这样的文件应该是一种好的做法吗

如果这个类有15到20行长,那么我应该创建一个单独的文件,或者只在一个文件中包含它,比如OAuth.php


请带着确切的理由进行指导,如果我能得到维基的链接并给出适当的解释,那就最好了。

将多个类放在一个文件中通常是一种不好的做法,而在Symfony2中,由于类自动加载程序的工作方式,这种做法甚至更糟

当autoloader正在查找
Acme\DemoBundle\SomeClass
类时,它希望它位于
Acme\DemoBundle\SomeClass.php
文件中。因此,如果在同一个文件中有第二个类,它将无法工作


还要检查类自动加载的标准。

尽管我不想为每个文件定义多个类,但我想指出,如果类作用域是私有的,则PSR-4不反对这种做法

引用Symfony2编码标准资源()

为每个文件定义一个类-这不适用于private helper 不打算从外部和外部实例化的类 因此,PSR-0和PSR-4自动装填标准并不关心这些问题

在另一个示例中(感谢Xavi Montero),您可以看到类
Psr4AutoloaderClassTest
在同一个文件中定义了一个助手类
MockPsr4AutoloaderClass
。所以一般来说,你不应该这样做,但对于“私人助手”来说,这没关系。

是的,这是正确的,但许多第三方库在一个文件结构中包含许多类。我不知道他们想要实现什么,通过编写5行的类,其中只存在3到4个成员变量,没有其他,示例是同一个库,无论如何感谢您的输入@tomasz在这个PSR-4示例页面中,您可以看到,例如,类
Psr4AutoloaderClassTest
在同一文件中定义了一个助手类
MockPsr4AutoloaderClass
。所以一般来说,你不应该这样做,但是对于一个“私人助手”来说,这没关系。谢谢你的评论,哈维,我添加它是为了丰富答案。