当我第一次了解Phalcon,我有机会在学习PHP的时候使用它。

这个人很爱尔康框架,使用依赖注入,这样的代码是非常灵活的,耦合是非常低的。但是,也许框架的东西太多了,遇到了几个坑。GitHub的一年多的问题尚未解决。但也有一些开发经验,或者能自己修就是这几个坑。浪费了很多时间…

第一个是视图。


对尔康的角度可以分为两个部分,一个是全球布局,和两是控制器/行动的一部分。
使用起来更方便,在设置布局之后,只关注视图的控制器部分。
但对于视图的路径设置,请注意这些参数。



MainView(主布局文件路径+文件名,而不是扩展,扩展的密钥时,视图引擎注入),

LayoutsDir(布局目录路径),

布局(主布局文件的名字,可以动态的布局目录下使用文件作为梅因维尤根据要求。)

partialsdir(使用部分功能,查找模板文件,如部分(主/头),发现路径 / / /你的partialsdir主要标题。伏)。)

ViewsDir(设定相应的控制器/动作模板文件的目录。类似partialdir,找到模板文件目录下自动)

BasePath(的观点,基本目录尔康和目录设置为所有相结合的路径,找到模板文件,这是坑)

当我开始使用这个视图时,我使用绝对路径,因为绝对路径配置和管理更方便。

然后我是坑。调试是浪费时间。

根据反复试验的官方文档,发现视图组件只能使用路径的相对路径的设置,而不需要修改表情。

同时,我们去康源。开发语言是语言由ZEPHIR发达,尔康团队。



语言语法简单易懂。然后我们看到这个句子。





包括



看起来这是一条相对路径还是一条绝对路径。这是直接的结合,而且猜测是有问题的。



模板文件按照动作、布局、主布局直接解析。



所以我想核实一下。因此,我编写了几个调试文件,并尝试调试它。



尔康的源代码的过程省略1000字…找到不可避免的调用,并有几种主要的路径处理方法,继承几个视图相关类


也有人强调,很多人喜欢用回声,一般情况是没有问题的。
但最好是用文件来记录,因为回声的限制是非常大的。
你不知道何时打开回声buff和何时关闭。使用文件记录日志是最安全的。


我用多模块的方式测试代码。

的baseview文件,继承了尔康的视图,并打开该方法的错误消息



basevolt文件,继承模板引擎伏



视图注入代码和目录结构





日志记录如下



页面输出如下所示:



在想象中,使用绝对路径,在任何情况下,Phalcon是一个直接的路径拼接以上设置。



当开发人员想动态地使用控制器/动作的视图时,布局主目录在上层目录中,这将是一个问题。



主要布局的路径,尔康看起来是尔康 MVC视图例外:视图 / / /用户欣工作/ phalcon_mode / / /行政程序模块 / / / main'was布局视图中没有发现。



我要的就是 / / /用户欣工作/ phalcon_mode / / /应用程序视图布局 /主



然后找不到路径,主布局模板文件不起作用…
所以,它实际上是三条路径的直接组合…所以,当你建立一条道路时,你要看看你的选择。

在三个变量的尔康查看源代码,修改表情,viewdir(关键是viewdir是可变的,错误的认识和错误)作为基本路径。ViewPath是行动的观点,道路布局来看,和_enginrender为了执行_enginrender。

明白了这一点,你可以慢慢设置自己的路…


有三种解决方案。

一个是写一个视图继承尔康看,加工路径。这个想法是,其他位置变化viewdir空除了动作的位置。
二是修改尔康的源代码,然后重新编译(在_enginrender对外加工路径的定位,_enginrender和路径定位耦合去除)
三是,不管是什么,直接使用相对路径(没有设置修改表情,viewsdir,因为我们需要动态定位操作的视图,使用绝对路径,layoutsdir partialsdir使用相对路径)。

在GitHub上,有人把这种错误的问题,但作者忽略了它。


华丽的分割线------------------------------------

二是模型

有一个坑,是关于模型的。对尔康,这是问题,本文不。

根据文档模型,提供了配置器链接描述方法,但事实上,设置程序不工作…
然后,像视图一样,自己修复它…




个人认为二传手很容易使用,但有些人觉得没用,不同的人,不同的看法。
我们的发展模式是,模型和控制器是由不同的人开发的,具有固定的吸气剂,数据调用者只能获取数据。
模型数据是不存在的,在模型中进行修改,控制器不需要更改。工作模式耦合可以减少很多。


然而,这个框架开发的项目被中止,进一步的坑没有得到满足。没有任何意外,短期内不会使用。

我最近心情不好。写得更随便。当唱片好的时候…

最后,GitHub的源代码直接附着。多模块模式开发与这样的目录结构也很好,希望能对别人有所帮助。