首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解框架是如何构建的

理解框架是如何构建的
EN

Stack Overflow用户
提问于 2015-03-16 12:34:08
回答 1查看 197关注 0票数 0

我曾经使用过类似iOS、Qt (c++)的Cocoa之类的框架,现在我正在学习Laravel。我的主要问题是关于框架中独特的语法。例如,Laravel对于IF语句有其独特的语法,这与PHP中使用的语句完全不同。

拉勒维尔

代码语言:javascript
复制
@if(condition) 

@else
 // code

@endif

PHP

代码语言:javascript
复制
if (condition) 
{
    //code
} 
else 
{
    //code
}

如何在框架中添加其他语法?这是通过使用普通PHP完成的,还是他们修改了核心PHP代码,使其行为不同,从而识别新的语法?

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-16 14:52:24

要回答你的特殊问题:

如何在框架中添加其他语法?这是通过使用普通PHP完成的,还是他们修改了核心PHP代码,使其行为不同,从而识别新的语法?

是的,这是用叶片模板发动机完成的。刀片基本上解析文件(*.blade.php),并将其序列替换为平原php,稍后执行。可以说,PHP本身已经是一种模板语言,但制造者似乎认为这不够容易,也不足以表达。如果您想了解更多关于它的信息,请查看文档或观看相应的Laracasts系列节目(L4-叶片基础L4-母版-页L5-Blade101 101)。看看BladeCompiler,看看是如何做到的。

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

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

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

框架可以被视为其基本技术的包装器,其目的是使一些(经常需要的)任务对开发人员来说更容易。但我所知道的那些并不能改变它的核心。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29076933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档