构建自己的php框架

构建自己的php框架,php,frameworks,build,email,Php,Frameworks,Build,Email,我对构建我自己的php框架感兴趣,以供我个人使用,从而简化我的编码工作。我这样做是因为我现在对php相当(有点)熟悉,而且似乎无法使用任何框架 我有一个在.php文件中加载函数的想法。就像我开始做的那样,对于发送邮件功能,我简化了它(供我使用): 这将在联系方式中使用: sendmail($_POST['to'], $_POST['message'], $_POST['subject'], $_POST['from']); 这个邮件功能适合我 然而,我完全不确定这样的框架是否正确。我已经研究过

我对构建我自己的php框架感兴趣,以供我个人使用,从而简化我的编码工作。我这样做是因为我现在对php相当(有点)熟悉,而且似乎无法使用任何框架

我有一个在.php文件中加载函数的想法。就像我开始做的那样,对于发送邮件功能,我简化了它(供我使用):

这将在联系方式中使用:

sendmail($_POST['to'], $_POST['message'], $_POST['subject'], $_POST['from']);
这个邮件功能适合我


然而,我完全不确定这样的框架是否正确。我已经研究过php的类和对象,但似乎无法理解它们,因为没有易懂/简单的教程。

这可能有助于了解一些想法


祝你好运

>这可能是太苛刻了,但是:除非你完全理解面向对象的编程,否则不要考虑建立自己的框架。当您获得更多经验时,OOP知识将从您的过程编程中发展而来。

不过,创建一个包含常用函数的PHP文件是一个不错的主意,我想说,去做吧。但是不要把它称为框架:)

如果你甚至不知道构建框架的基本原理是什么,尤其是模式,并且没有完全基于OOP和舒适地编写它,那么你希望如何实现你的目标呢?你不一定会通过自己编写代码来学到很多东西,也就是说,如果你写了40次糟糕的代码,那不是在教你什么(顺便说一句,这不是对你个人的批评),而是通过阅读别人的代码,这些代码是好的、坏的和无关紧要的,那么你就会学到很多东西。

通常,框架有一个特定的目标。框架可能支持CMS、3D引擎、数据访问系统等。。。您可能经常看到几个框架一起使用以实现最终目标,例如使用Spring、Hibernate和JavaEE构建基于Java的web应用程序


从外观上看,您正在将所有您最喜爱的组合功能收集到一个文件中(或者您是否按功能将它们分组到不同的文件中?)。这可能很有用,但我现在还不称之为框架。这真是个图书馆。如果您的所有功能都旨在支持奇特的电子邮件功能,那么请学习OOP,并构建一个框架,其唯一目标是为奇特的电子邮件功能提供一个易于使用的界面。

人们会告诉您不要编写自己的框架,而要使用现有的框架。不要听他们的。这是一次很好的学习体验,将帮助您理解概念,这将使其他框架对您更有意义

在能够使用其他人的框架之前,我个人需要更好地理解两件事(显然,我自己也要写):

  • 我花了几天时间阅读PHP上的每个OOP教程和MVC上的每个教程/维基页面。然后,作为一次学习经验,我编写了自己的框架。然后我从错误中吸取教训,从零开始编写另一个框架。我大概写了5个版本。然后我决定试试密码点火器。经过所有的阅读和练习,我终于明白了


    从那时起,我只使用了其他人的框架。

    我也会赌其他框架。有一些简单的社区很大。您可以通过三种方式帮助自己:从许多贡献的模块/良好的结构开始,阅读高质量的代码,并从大型社区获得支持


    这里列出了许多流行的框架和比较——phpframeworks.com。我还可以推荐您使用CodeIgniter-适合初学者,非常简单,同时基于MVC。

    如果您想使用一个框架供个人使用,您应该使用一个已建立的开源产品,例如,或。这些框架已经由有才华的web开发人员开发和测试了多年,很可能满足您的需求只有在出于教育目的或现有框架不适合您的要求时,才应该创建自己的框架。不需要重新发明轮子

    发件人:

    该框架旨在缓解这一问题 与公用事业相关的间接费用 在网络上执行的活动 发展。例如,许多 框架为 数据库访问、模板框架 和会话管理,它们通常 促进代码重用

    这正是这些框架的目标,并且在这方面相当成功


    通过使用这些,您还将学会欣赏他们的解决方案,并了解他们如何使用OOP进行web开发,从而增加您作为开发人员的知识。

    其他人已经回答了您的框架问题(仅构建具有学习价值的内容,否则,您将学会使用一个更好的现有成熟框架和库)但我只想指出代码中的一个小错误,在var之前有一个sigil$的全部意义在于,您可以轻松地

    $headers  = "From:$from\r\n";
    
    而不是

    $headers  = "From:";
    $headers .= $from;
    $headers .= "\r\n";
    

    和这里的其他一些人一样,我只看到尝试编写框架的无经验用户的积极收益。如果他们将现有选项视为模型,并实际尝试使用新代码,从而识别其弱点并加以修复,那么这可能是快速开发知识的一个好方法。也就是说,对于一个非常新的用户,在生产应用程序中使用它时,我可能会三思而后行;再说一次,如果应用程序的核心代码是由同一个用户编写的,可能不会有多大区别

    话虽如此,框架从本质上讲是非常具有架构性的,因此可能不是最好的起点。简单的实用程序代码库要好得多,这正是OP所做的(术语问题除外)。对他有好处

    至于到了严肃认真的时候总是跳上现有的框架潮流,我对此有着根深蒂固的保留。第一个o
    $headers  = "From:";
    $headers .= $from;
    $headers .= "\r\n";
    
    $headers  = "From:";
    $headers .= $from;
    $headers .= "\r\n";
    
    sendmail($_POST['to'], $_POST['message'], $_POST['subject'], $_POST['from']);
    
    'Name\r\nAnyotherheader:date\r\n'