首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 项目中使用 webpack-encore

至于为什么放弃 laravel-mix,主要是因为它的维护状况堪忧,不仅更新节奏缓慢,许多 Issue 久悬未决,更重要的是,作者似乎将很多 bug 完全寄希望于 webpack5,哪怕有热心人士 PR...但最终让下定决心寻求替代方案的,则是这个 Issue ,细翻源码,发现相关功能依赖的还是 extract-text-webpack-plugin,而这个包,早在 webpack4 发布不久就被宣布废弃了...安装依赖 首先当然是安装依赖 yarn add -D @symfony/webpack-encore 需要注意的是,webpack-encore 没有像 laravel-mix 那样自己内部依赖 vue-tempplate-compiler...这种态度也让对它更加放心了,相信它会折腾得越来越好。虽然 webpack-encore 是作为 Symfony 默认集成工具来设计的,但这并不妨碍它在 Laravel 中发挥强大威力。...当然,更为重要的是,mix4 里因为一些 bug 而无法使用的功能, encore 里却正常,如 dynamic import。

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

学习PHPYAML操作扩展的使用

此外,测试代码我们加入了中文的内容。可以看到直接转换的时候中文被编码了。就像 JSON 操作一样, YAML 这个扩展的函数,我们也可以指定编码格式让中文原样显示。... Laravel 框架并没有要求我们安装这个 YAML 扩展,似乎框架本身就有解决读取转换这种 YAML 格式的工具,这个我们最后再说。...laravel 这种写法可以看做是 YAML 的一种标签格式的写法。而这个回调的作用就是遇到类似的这类标签的时候,使用什么回调函数来进行处理。比如我们的原文档的 !...总结 对于这个扩展的内容不多,而且即使是真实的业务环境需要操作 YAML 格式的配置文件的话估计也不会用它。为什么呢?...如果是自己使用的话, packagist.org 能找到很多组件,而如果是使用 Laravel 的话,它的底层使用的其实是 symfony 框架 yaml 处理组件。

2.2K10

yii2反序列化后续

昨天早上上班前,无意间看到其它师傅们挖的yii2利用链,其中有一个是之前忽略了的,就想着赶紧分享给大家,但是昨天恰了个饭(文末有福利),发不了文章,只有今天发了 这是一条利用__wakeup魔术方法作为入口的利用链...,然后就去看了看,有所收获,所以简单和大家分享一下 问题出在Symfony\Component\String\UnicodeString,我们看下它的wakeup方法: public function...去查了一下,这个应该是yii的视图报错了导致无法回显命令执行的结果,所以,利用dnslog来验证命令是否执行,如下: ? 可以看到命令成功执行了 poc1: yii2真是一个练习反序列化连挖掘的好靶场,我们可以通过它来练习各种魔术方法反序列化链构造的使用 php所有的魔术方法如下: __construct(),类的构造函数 __destruct()...__clone(),当对象复制完成时调用 __autoload(),尝试加载未定义的类 __debugInfo(),打印所需调试信息 这里本打算再利用__invoke构造一个,的想法如下: Symfony

1.1K30

是否需要使用依赖注入容器?

@TODO 第 3 篇:Symfony 服务容器入门 @TODO 第 4 篇:Symfony 服务容器:使用建造者创建服务 @TODO 第 5 篇:Symfony 服务容器:使用 XML 或 YAML...如果你还记得 什么是依赖注入 中讲到的例子,创建 User 实例之前,需要先创建 SessionStorage 实例。...想明确的是,实现「依赖注入容器」时不涉及 Symfony 相关功能,所以我将使用 Zend 框架示例来说明。 这边不涉及框架之争。...非常感谢 Zend 框架组件,事实上,Symfony 框架使用了许多 Zend 框架的组件。...这就是为什么容器能够管理任何 PHP 对象的奥秘。甚至,如果这些实例也使用依赖注入来管理自身的依赖,那就更加完美了,但这不是先决条件。 当然,人肉创建和维护容器类会很快成为一场噩梦。

2.1K20

Laravel源码解析之Request

很多框架都会将来自客户端的请求抽象成类方便应用程序使用,Laravel也不例外。...Illuminate\Http\Request类Laravel框架中就是对客户端请求的抽象,它是构建在 Symfony框架提供的Request组件基础之上的。...今天这篇文章就简单来看看Laravel是怎么创建请求Request对象的,而关于Request对象为应用提供的能力并不会过多去说,讲完创建过程后你也就知道去源码哪里找Request对象提供的方法了...创建Request对象 我们可以Laravel应用程序的 index.php文件中看到Laravel应用程序正式启动完成前Request对象就已经被创建好了: //public/index.php...{ //Symfony request instance的基础上创建Request实例 public static function createFromBase(SymfonyRequest

2.3K20

Symfony 服务容器入门

第 3 篇:Symfony 服务容器入门 @TODO 第 4 篇:Symfony 服务容器:使用建造者创建服务 @TODO 第 5 篇:Symfony 服务容器:使用 XML 或 YAML 文件描述服务...现在,是时候该去探索 Symfony 2 服务容器是如何实现这个主题了。 Symfony 的「依赖注入容器」定义的类名为「sfServiceContainer」。...Symfony 服务容器可以到官方 Svn 版本库获得: http://svn.symfony-project.com/components/dependency_injection/trunk/。...注意, Symfony 组件依旧保持更新,这也意味着它的实现可能与本文有所出入。(译注: @todo) Symfony ,任何服务的实例都有容器管理。...比如我们容器定义一个 getMailTransportServer() 方法,容器同时会定义一个名为 mail_transport 的服务标识符。

3.3K10

【Laravel系列3.1】​一个请求的前世今生

请求,体现在 Laravel 框架的 request ,这个 Request 对象底层是 Symfony 的一个 RequestBag 包,它将贯穿整个框架几乎所有加载的对象,能够被我们的控制器...我们以路由中的处理为例,可以看到一个简单的请求走到路由中就经历过了这么多的类和方法的处理。所以我们常说 Laravel 的慢就是慢了这里。当然,这也是之前就说过的,为了“优雅”而放弃的性能。...为什么是 all() 方法呢?因为我们没指定是 get 还是 post 来的数据。 request ,有对应的 get() 和 post() 方法,同时也存在一个 all() 方法。...整个调用过程底层依然使用的是 Symfony 框架来进行请求的处理。并将所有的请求数据封装成一个 Bag 类型的对象。我们所有的参数都是从这个对象里面的属性取得的。...大家调试过程,可以看到请求参数都在 InputBag 的 parameters 属性。 那么,这个属性是什么时候获得参数信息的呢?

7.5K20

PHP之内置web服务器

比如 Laravel 和 Symfony。 Laravel Laravel的安装一节中介绍了一个命令可以使用PHP内置web服务器实现外部访问的命令。.../server.php note: 这里我们可以看到一个区别就是之前自己写的代码,host 都是 localhost, 但是这里写的是 0.0.0.0。这两个有什么区别呢?...Symfony中有一段代码是这样的: public function start(WebServerConfig $config, $pidFile = null) { // 获取默认的PID...里面有一个问题就是使用pcntl_fork, 该扩展Windows是不受支持的. 所以 Symfony框架会提示使用php bin/console server:run命令运行程序....总结 通过我们学习 PHP 命令实现web服务器访问以及对 Laravel 和 Symfony 框架的分析, 让了解到Windows的开发过程,我们完全可以借助该方式来摆脱对web服务器的依赖.既能方便我们

3.1K10

Laravel源码解析之Cookie

Cookie服务注册 之前讲服务提供器的文章里我们提到过,LaravelBootStrap阶段会通过服务提供器将框架涉及到的所有服务注册到服务容器里,这样在用到具体某个服务时才能从服务容器解析出服务来...(); Laravel的 Response继承自Symfony的 Response, send方法定义 Symfony的 Response里 namespace Symfony\Component\HttpFoundation...cookies来实现的, 我们写 LaravelRequest对象的文章里有提到它依赖于 Symfony的 Request, Symfony的 Request实例化时会把PHP里那些 $_POST...、 $_COOKIE全局变量抽象成了具体对象存储了对应的属性。...LaravelCookie模块大致的实现原理就梳理完了,希望大家看了的源码分析后能够清楚Laravel Cookie实现的基本流程这样遇到困惑或者无法通过文档找到解决方案时可以通过阅读源码看看它的实现机制再相应的设计解决方案

2.3K50

PHP之内置web服务器

比如 Laravel 和 Symfony。 Laravel Laravel的安装一节中介绍了一个命令可以使用PHP内置web服务器实现外部访问的命令。.../server.php note: 这里我们可以看到一个区别就是之前自己写的代码,host 都是 localhost, 但是这里写的是 0.0.0.0。这两个有什么区别呢?...Symfony中有一段代码是这样的: public function start(WebServerConfig $config, $pidFile = null) { // 获取默认的PID...里面有一个问题就是使用pcntl_fork, 该扩展Windows是不受支持的. 所以 Symfony框架会提示使用php bin/console server:run命令运行程序....总结 通过我们学习 PHP 命令实现web服务器访问以及对 Laravel 和 Symfony 框架的分析, 让了解到Windows的开发过程,我们完全可以借助该方式来摆脱对web服务器的依赖.既能方便我们

3.7K30

Symfony 服务容器性能优化

第 3 篇:Symfony 服务容器入门 第 4 篇:Symfony 服务容器:使用建造者创建服务 第 5 篇:Symfony 服务容器:使用 XML 或 YAML 文件描述服务 第 6 篇:Symfony...Object-Oriented 译作 面向对象 mock 译作 模拟 anti-patterns 译作 反模式 hardcoded 译作 硬编码 dumper 译作 转存器 loader 译作 加载器 ---- 正文 本系列关于依赖注入的前五篇文章...即使服务是延迟加载,每个请求读取一堆 XML 或 YAML 文件,并通过使用自省(Introspection)来创建对象 PHP 可能效率不高。...结束本系列之前,还想向您介绍「转存器」的另一个重要功能。「转存器」可以做很多不同的事情,为了演示组件如何完成代码解耦,实现了 「Graphviz 转存器」。它是做什么的?...希望您能够有所收获。也希望你能很快尝试 Symfony 2 服务容器组件并给我反馈你的使用情况。另外,如果您为某些现有的开源库创建「功能」,请考虑与该社区分享它们。

3.1K10

浅入理解 webpack 模块

一个来自 QQ 群的提问 某天晚上,的 QQ 群有个童鞋问了这么一个问题: 也比较好奇为什么 require 引入的图片还需要在后面加个 default 呢?...带着这个疑问,于是写了一个简单的 DEMO 来验证了一下,代码如下: 执行了 webpack 命令后,可以看到编译后的精简代码是这样的: webpack 模块源码分析 首先,我们可以看出来这个编译后的...; } }) 我们可以明显看到,这个图片在导出的时候,实际上是 __webpack_exports__["default"] 里面的,那么使用 require 引入的时候又是什么样的呢?...; 很明显可以看到,这里引入 logo 这个图片的时候,是直接使用 __webpack_require__ 来导入的,我们前面看到过 __webpack_require__ 的实现。...; 我们可以看到,虽然导入的时候也没有带上一个 default,但是 React 创建 img 标签的时候,给它带上了一个 default,关键点在于这句 return react__WEBPACK_IMPORTED_MODULE

42620

Tree-Shaking性能优化实践 - 原理篇

具体来说, webpack 项目中,有一个入口文件,相当于一棵树的主干,入口文件有很多依赖的模块,相当于树枝。实际情况,虽然依赖了某个模块,但其实只使用其中的某些功能。...分别用rollup + uglify和 webpack + uglify 将图4的代码进行打包 图6 中间是配置文件,右侧是结果 可以看到右侧最终打包结果中都去除了无法执行到的代码,结果符合我们的预期...这是 ES6 modules 设计时的一个重要考量,也是为什么没有直接采用 CommonJS,正是基于这个基础上,才使得 tree-shaking 成为可能,这也是为什么 rollup 和 webpack...先看看rollup的打包结果 完全符合预期,最终结果没有get方法 再看看webpack的结果 也符合预期,最终结果没有get方法 可以看到rollup打包的结果比webpack更优化 函数消除实验...为什么呢?无用的类不能消除,这还能叫做tree-shaking吗?当时一度怀疑自己的demo有问题,后来各种网上搜索,才明白demo没有错。

8810

Laravel composer 加载流程

成功 new 出该文件核心类 ClassLoader() 后,又销毁了该函数。 为什么不直接 require?...值得注意的是这个函数返回的是一个匿名函数,为什么呢?原因就是 ClassLoader 的 prefixLengthsPsr4 、prefixDirsPsr4 等等方法都是 private 的。...为什么呢?因为 PSR4 的文件目录更加灵活,更加简洁。...核心 ClassLoader 的 loadClass() 函数上,这个函数负责按照 PSR 标准将顶层命名空间以下的内容转为对应的目录,也就是上面所说的将 App\Console\Kernel Console...findFile() 解析命名空间的时候主要分为两部分: classMap 直接看命名空间是否映射数组 findFileWithExtension() 包含了 PSR0、PSR4 如果我们代码

32420
领券