在项目的根目录下给出以下目录:
无论我碰巧使用什么框架,将src
目录用于可在项目之外使用的可移植代码是正确的,还是{{1}的角色目录?
对于要共享的代码使用vendor
目录可能会出现任何问题吗?
答案 0 :(得分:1)
这似乎是一种合理的设计方法。 Composer允许您通过将自己的类自动加载到目录中然后在composer.json中引用它来实现此目的。请参阅此问题,了解如何:Using Composer's Autoload
但是,这不会处理src /下代码的版本控制。如果你要单独发布这个,那么可能值得学习how to make your library installable through Composer,一旦你把它检查到某个地方的Git仓库,就像这样引用它:
"require": {
"me/testlib": "1.0.*"
}
"repositories": [
{
"type": "vcs",
"url": "https://github.com/username/hello-world"
}
]
当然,那么你将为多个源树提供维护,一个用于你的项目,一个用于每个库,但这是一件好事吗? (“关注点分离”。)
答案 1 :(得分:0)
在一般情况下,您的方法看似有效。
如果数据量app
或其他任何地方超过src
中可用代码的数量,它将无效。换句话说:如果您只在src
中托管一个共享类,并且app
中的一千兆字节资产不是该类所需的,那么将它设为库是愚蠢的
但在这种情况下,将该类简单地移动到其自己的作曲家库中并再次包含它将很容易。由于自动加载,类仍将存在(尽管文件改变了它的位置)并且可以在其他代码中使用。任何需要大量资产的任何其他软件即使移动了该类,也将继续工作。
将代码移动到库中时,可能值得考虑通常更小的更好,但是太小则没有价值。你不想require
它自己的每一堂课 - 但是一个合理的课程集合使用相同的主题是一个很好的候选人。