只是为了学习,是自己写框架,不带任何组件和工具,还是看开源框架的源码?
Just for learning, should I write my own framework without any components or tools, or just read the source code of an open source framework?
我想了解框架的工作原理。我应该在不使用任何开源组件或任何工具(如 Composer 或 PHPUnit .. 等)的情况下从头开始制作自己的框架,还是只阅读开源框架(如 Symfony 或 Laravel .. 等的源代码
我应该尽量不要使用 Composer 和 PHPUnit(用于自动加载和测试)吗?这对我的学习过程有帮助吗?
我不能说 PHP 的细节,但如果您想了解框架的工作原理,您绝对应该尝试自己构建一个!
至于您是否应该自己实现这些组件,您必须选择一定的抽象级别,您不会低于此级别。 (除非你从头开始用晶体管一直构建计算机,一直到你的框架级别,否则这很愚蠢)。使用开源组件没有坏处。如果您想学习,重新发明轮子很好,但这并不意味着您不能使用预制辐条。此外,您始终可以查看组件以了解它们如何工作。
问你一个问题 - 你为什么要这样做,你知道多少 PHP?
框架是一种快速完成某事的工具 - 其理念是将某些东西(无聊和平凡的东西)抽象化,以便您提高工作效率 - 换句话说,其理念是您无需了解它是如何工作的或为什么会工作 - 只是它让您的生活更轻松。
好的框架相对轻量级,不会让你的页面变慢,同时增加开发吞吐量。
很明显,您需要了解该框架才能使用它,但您不需要了解它的工作原理详细,我想这就是我要问你的问题 - 除非你计划制作自己的框架或打算显着定制另一个框架,否则为什么要费心学习这个 - 这是你的计划吗?
无论如何,如果您的基本目标是了解有关 PHP 的更多信息,则无需研究框架。
现在,由于这是堆栈溢出 - 而不是我在回答中提问 - 我将实际回答问题:
你问题的第一部分"I want to understand how frameworks work" 我想我已经在上面提到过 - 何必呢?通过项目而非框架学习 PHP。
下一部分,"Should I make my own framework from scratch" - 这是给你的一般编程问题,如果你被要求从网络服务中获取一些数据,你会吗?先去写套接字层,然后写加密的协商协议,然后写字符串处理函数等等——可能不会——你会用一个库(curl?)代替,为什么?因为你知道它有效,而且它会比你做的任何东西都好——而且会节省你的时间。现在,类似 PHP 框架的东西也是如此 - 如果你相信你可以比同行评审的开源框架做得更好 - 那么就继续尝试吧,但是你不太可能很快就会与 Cake、Laravel 等一起登上排行榜榜首。
(这里有一个注释——如果你有一个超级特定的问题,none 现有的通用框架可以解决,那么你可能想要制作自己的框架,但这不太可能)
我将重新措辞你问题的最后一部分,让它变得非常明显——而不是 而且我应该尽量不使用 Composer 和 PHPUnit(用于自动加载和测试) ?这对我的学习过程有帮助吗? 我想你问的是一般意义上的 - "I want to do a PHP project, should I use quality of life tools like Composer and PHPUnit to make my life easier" - 答案当然是肯定的,但只是如果这是一个真实的项目,如果你这样做了一个星期然后打算放弃,那么创建一个合适的项目结构是没有意义的。
我建议您也考虑将 Gulp 与浏览器同步一起使用 - read this,这将使您在所有 php 项目中的生活变得更加轻松,而不仅仅是这个(因为你会有某种前端输出)
无论如何,我希望这能给你一些启发:)
我想了解框架的工作原理。我应该在不使用任何开源组件或任何工具(如 Composer 或 PHPUnit .. 等)的情况下从头开始制作自己的框架,还是只阅读开源框架(如 Symfony 或 Laravel .. 等的源代码
我应该尽量不要使用 Composer 和 PHPUnit(用于自动加载和测试)吗?这对我的学习过程有帮助吗?
我不能说 PHP 的细节,但如果您想了解框架的工作原理,您绝对应该尝试自己构建一个!
至于您是否应该自己实现这些组件,您必须选择一定的抽象级别,您不会低于此级别。 (除非你从头开始用晶体管一直构建计算机,一直到你的框架级别,否则这很愚蠢)。使用开源组件没有坏处。如果您想学习,重新发明轮子很好,但这并不意味着您不能使用预制辐条。此外,您始终可以查看组件以了解它们如何工作。
问你一个问题 - 你为什么要这样做,你知道多少 PHP?
框架是一种快速完成某事的工具 - 其理念是将某些东西(无聊和平凡的东西)抽象化,以便您提高工作效率 - 换句话说,其理念是您无需了解它是如何工作的或为什么会工作 - 只是它让您的生活更轻松。
好的框架相对轻量级,不会让你的页面变慢,同时增加开发吞吐量。
很明显,您需要了解该框架才能使用它,但您不需要了解它的工作原理详细,我想这就是我要问你的问题 - 除非你计划制作自己的框架或打算显着定制另一个框架,否则为什么要费心学习这个 - 这是你的计划吗?
无论如何,如果您的基本目标是了解有关 PHP 的更多信息,则无需研究框架。
现在,由于这是堆栈溢出 - 而不是我在回答中提问 - 我将实际回答问题:
你问题的第一部分"I want to understand how frameworks work" 我想我已经在上面提到过 - 何必呢?通过项目而非框架学习 PHP。
下一部分,"Should I make my own framework from scratch" - 这是给你的一般编程问题,如果你被要求从网络服务中获取一些数据,你会吗?先去写套接字层,然后写加密的协商协议,然后写字符串处理函数等等——可能不会——你会用一个库(curl?)代替,为什么?因为你知道它有效,而且它会比你做的任何东西都好——而且会节省你的时间。现在,类似 PHP 框架的东西也是如此 - 如果你相信你可以比同行评审的开源框架做得更好 - 那么就继续尝试吧,但是你不太可能很快就会与 Cake、Laravel 等一起登上排行榜榜首。
(这里有一个注释——如果你有一个超级特定的问题,none 现有的通用框架可以解决,那么你可能想要制作自己的框架,但这不太可能)
我将重新措辞你问题的最后一部分,让它变得非常明显——而不是 而且我应该尽量不使用 Composer 和 PHPUnit(用于自动加载和测试) ?这对我的学习过程有帮助吗? 我想你问的是一般意义上的 - "I want to do a PHP project, should I use quality of life tools like Composer and PHPUnit to make my life easier" - 答案当然是肯定的,但只是如果这是一个真实的项目,如果你这样做了一个星期然后打算放弃,那么创建一个合适的项目结构是没有意义的。
我建议您也考虑将 Gulp 与浏览器同步一起使用 - read this,这将使您在所有 php 项目中的生活变得更加轻松,而不仅仅是这个(因为你会有某种前端输出)
无论如何,我希望这能给你一些启发:)