了解如何构建框架

时间:2015-03-16 12:34:08

标签: php laravel

我使用过像Cocoa for iOS,Qt(c ++)这样的框架,我现在正在学习Laravel。我的主要问题是框架内的独特语法。例如,Laravel有其独特的IF语句语法,它与PHP中使用的语法完全不同。

Laravel

@if(condition) 

@else
 // code

@endif

PHP

if (condition) 
{
    //code
} 
else 
{
    //code
}

如何在框架中添加其他语法?这是通过使用普通PHP还是修改核心PHP代码来使其行为不同以便识别新语法?

我想一个更简单的问题是,创建框架的人是否需要访问该语言的核心代码,或者他们只是使用该语言提供的内容并构建其框架?

类似thread,但没有回答我的问题。

1 个答案:

答案 0 :(得分:2)

回答您的具体问题:

  

如何在框架中添加其他语法?这是通过使用普通PHP还是修改核心PHP代码来使其行为不同以便识别新语法?

是的,这是使用blade templating engine完成的。 Blade基本上解析文件(*.blade.php)并用普通的php替换它的序列,稍后会执行。 PHP它的自我已经是一种模板语言可以这么说,但制造商似乎认为这不容易或表达得足够多。如果您想了解更多相关信息,请查看文档或观看相应的Laracasts剧集(L4-Blade BasicsL4-Master-PagesL5-Blade101)。看看BladeCompiler,看看这是如何完成的。

  

创建框架的人是否需要访问该语言的核心代码,或者他们只是使用该语言提供的内容并围绕该框架构建其框架

好吧,我不确定这是否适用于100%的框架,但在大多数情况下,我会说。但是,它们可能使用其他技术而不是直接包含在基本语言/技术中(例如.NET for C#i假设,它基于一些非c#组件),但我强烈怀疑manym,(如果有的话)框架改变基础技术的核心。

顺便说一句。可以为非开源技术创建框架。在这些情况下,由于您根本无法访问它,因此无法修改基础技术的核心

框架可以被视为围绕其基础技术的Wrappers,旨在使开发人员更容易完成一些(通常需要的)任务。但是我知道的那些并没有改变其基础的核心。