我刚刚将我在Kohana3.3上创建的项目从Windows移动到Ubuntu(本地服务器),它停止了工作。我认为问题是大写/小写问题(它表示表.__或Model_它们不存在)。
我需要一些关于大写/小写文件名和类名的解释。
我发现的是SO question: Kohana 3.3 Not working from Subdirectory:
Kohana 3.3增加了对PHP Framework Interop Group的PSR-0标准的部分支持。我们鼓励PHP框架开发人员遵循此标准来简化框架之间的交互。 PSR-0的要求之一是类名和文件名匹配。
另外,我看到Kohana3.3中的Controller文件夹以大写字母C开头(不是3.2中)。另外,Welcome.php文件以W开头(不像3.2)。
所以,我对Kohana3.3的简单问题是:
Model文件夹是否应以大写字母开头?
所有控制器文件都应以大写字母开头吗?
Model文件夹中的所有模型文件都应以大写字母开头吗?
我应该写ORM :: factory('Capital'),而不是ORM :: factory('capital')?
视图文件夹怎么样?是查看还是查看?
我已经阅读了Kohana的一些例子,但是从我发现的内容中我怀疑是3.3。
另外,我的问题:为什么它在Windows下运行?
答案 0 :(得分:3)
你可以通过reading the documentation和/或只是试验看看哪些有效,什么无效就可以解决大部分问题。
简而言之,在PSR-0中,文件名必须完全与类名相同。因此,如果您调用名为Penguins_CanNot_Fly
的类,则文件名应该是Penguins/CanNot/Fly.php
。
在Linux上,文件名区分大小写。因此,File.txt
和file.txt
是两个不同的文件。但是,在Windows上,这两个文件被认为是同一个文件(这是因为windows不区分大小写)。这意味着PSR-0在Windows上无法正常工作,除非您修改自动加载器以检查确切的文件路径。
对于ORM,是的,您需要记住模型应区分大小写。 ORM::factory('Blog')
和ORM::factory('blog')
会加载不同的模型,但会使用相同的表格。