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

【PHP】Largon 快速部署 Laravel 项目

通过核心的kernel进行引导初始化。$app->make(Kernel::class)是核心的启动方法。内核Kernel的主要工作:引导、处理请求、生命周期活动、获取实例。...Kernel 类是在 Illuminate\Contracts\Http\Kernel的包中,我们可以通过var_dump或者下面的方式打印出实例化之后的内部对象属性,当然也可以阅读文章末尾一些不使用IDE...重点看 app 属性,app 属性实际上是一个 Illuminate\Foundation\Application 的实例,这个实例包含了非常多的属性值,挑选其中主要的内容:loadedProviders...with stability stable 其中给出的提示为需要使用下面的命令:composer create-project --prefer-dist laravel/laravel test这里提到了...>");当然还有其他人给出了更简洁的写法。效果是差不多的:var_dump(highlight_string("<?

3.1K20

在Swoole上使用双容器策略实现请求隔离的依赖注入

简单来说, 容器通过反射机制可获取目标方法的依赖 ( laravel 用反射来获取 typehint 类型约束, 而 Swoft项目似乎与spring 相似, 是从注释上获取的)....::class); 由于单例在容器内只生成一次, 那第二次请求时, 容器会给出第一次请求的session单例, 从而逻辑就乱套了....常见的解决策略 由于 Laravel 等使用了IoC 容器的项目能带来极好的工程体验, 而Swoole 能带来极大的性能提升, 于是有许多试图结合两者的项目, 都面临了 “请求隔离问题”....CommuneChatbot 的双容器策略 本项目使用的双容器策略是一个通用的策略, 代码在 https://github.com/thirdgerb/container, 是由 Illuminate/...就我发现, 最容易导致内存泄露的两种情况: 某个闭包在每次请求时生成一个闭包实例, 被每个容器持有 容器生成的某个服务是匿名类, 导致相互持有 简单来说, 就是定义闭包和匿名类时, 慎重考虑内存泄露的可能性就行

1.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    程序猿必读-防范CSRF跨站请求伪造

    CSRF(Cross-site request forgery,中文为跨站请求伪造)是一种利用网站可信用户的权限去执行未授权的命令的一种恶意攻击。...img src="http://a.com/user/grant_super_user/121" /> 设想管理员看到这个帖子的时候,这个图片肯定会自动加载显示的。...token可以是任意的内容,但是一定要保证无法被攻击者猜测到或者查询到。攻击者在请求中无法使用正确的token,因此可以判断出未授权的请求。...第二个条件顾名思义是对单元测试进行放行,第三个是为开发者提供了一个可以对某些请求添加例外的功能,最后一个$this->tokensMatch($request)则是真正起作用的一个,它是Laravel防范...作为一名web方向的研发人员,无论你是从事业务逻辑开发还是做单纯的技术研究,了解一些安全方面的知识都是很有必要的,多关注一些安全方向的动态,了解常见的攻击方式以及应对策略,必将在你成长为一名大牛的路上为你

    2.5K20

    Laravel代码简洁之道和性能优化

    经过一番调研之后发现了一个堪称神器的扩展:laravel-upsert 这个 Laravel 扩展为查询构建器和 Eloquent 添加了对 INSERT & UPDATE (UPSERT) 和 INSERT...IGNORE 的支持 先简单说明一下业务场景: 首先表结构设计是:互相喜欢和添加联系人都是双向关系,即入库A B,B A这样成对的双向数据 触发互相喜欢,插入2条双向数据,插入之前校验是否存在,存在不重复添加...第二个参数是唯一标识记录的列。除 SQL Server 外的所有数据库都要求这些列具有PRIMARY或UNIQUE索引。 提供要更新的列作为第三个参数(可选)。默认情况下,将更新所有列。...作为使用复合键和原始表达式的示例,请考虑以下表,该表计算每个帖子和每天的访问者: Schema :: create ( 'stats' , function ( Blueprint $ table )...LaravelUpsert\Eloquent\HasUpsertQueries; 因为我们数据库的时间是int类型,不是laravel默认的时间格式,并且我们的插入时间和更新时间也不是laravel默认的字段

    5.8K20

    Laravel 开发 RESTful API 的一些心得

    验证 API 开发总会离不开验证,这里推荐使用jwt-auth,1.0 快要来了,新版本的文档也很清晰 刚用 jwt-auth时有疑问,Laravel自带的token验证使用的是数据库apitoken字段验证...laravel用的是中划线(-),因为谷歌收录时,按中划线划分关键字,国内的是按下划线(_)收录,具体看自己了,我是喜欢下划线 >_< 更多看这里: 路由命名规范(https://laravel-china.org...在有不确定是否输出关联数据时,这是一个很有用的功能!!! 响应输出 当时在 laravel-china 看到的这个帖子,然后觉得这个方式不错,所以自己也这样子,使用基类的方法统一响应输出。...// 未捕获之前的写法 public function show($id) { $user = User::find($id); if (!...,没什么好说的了 MethodNotAllowedHttpException这个是方法不对应,比如你是get路由,却post请求 文档 差点忘了这个,文档非常非常重要,我是不怎么喜欢在注释写文档的。

    3.9K90

    Laravel 开发 RESTful API 的一些心得

    ,1.0 快要来了,新版本的文档也很清晰 刚用jwt-auth时有疑问,Laravel自带的token验证使用的是数据库api_token字段验证,而不见jwt-auth需要这个 然后想自己看源码,结果...laravel用的是中划线(-),因为谷歌收录时,按中划线划分关键字,国内的是按下划线(_)收录,具体看自己了,我是喜欢下划线 >_< 更多看这里: 路由命名规范 表单验证 可以使用控制器自带的表单验证...在有不确定是否输出关联数据时,这是一个很有用的功能!!! 响应输出 当时在 laravel-china 看到的这个帖子,然后觉得这个方式不错,所以自己也这样子,使用基类的方法统一响应输出。...// 未捕获之前的写法 public function show($id) { $user = User::find($id); if (!...,没什么好说的了 MethodNotAllowedHttpException这个是方法不对应,比如你是get路由,却post请求 文档 差点忘了这个,文档非常非常重要 我是不怎么喜欢在注释写文档的 使用

    43210

    老照片修复、寻找系外行星……这里有8个超赞的机器学习项目

    抑郁症是全球致残的主要原因之一,也是全球疾病负担中极为重要的一部分。每年有 80 万人自杀而死。自杀是 15 到 29 岁人群的第二大致死因素。...遗憾的是,抑郁症的治疗往往延迟、不准确甚至完全不起作用。 基于互联网的生活为改变早期抑郁症治疗服务提供了机会,尤其是在年轻人群中。...但是,仅依赖专业领域的支持还远远不够,并且显式方法论也并不奏效。 所以,通过分析社交媒体帖子中的一些标志性语言,我们可以创建一种新的深度学习模型。...借助神经网络生成体育比赛视频的文本摘要 ? 图源:Unsplash,摄自 Aksh yadav。 该项目的想法主要是基于从体育比赛视频中提取出准确的摘要。一些体育网站能够给出比赛的亮点。...人工解释系外行星候选者的工作量巨大,并且容易出现人为错误,其后果难以评估。卷积神经网络适用于在嘈杂的时间序列数据中,以比最小二乘策略更高的准确性来识别类地系外行星。 老照片修复 ?

    50431

    深入剖析 Laravel 服务容器

    目录结构 序章 依赖注入基本概念 什么是依赖注入 什么是依赖注入容器 什么是控制反转(IoC) Laravel 服务容器是什么 小结 Laravel 服务容器的使用方法 管理待创建类的依赖 常用绑定方法...Containers and the Dependency Injection pattern:学习依赖注入必读经典; 依赖注入系列教程:原教程由 Symfony 框架的创造者所写,我给出的是我翻译的文章...有关 instance 的使用方法可以查阅 Laravel 服务容器解析文档,不过我也会在下文中给出相关使用说明。 到这里相信大家对「Laravel 服务容器」有了一个比较清晰的理解了。...常用绑定方法 bind 简单绑定 bind 方法的功能是将服务的实现绑定到抽象类,然后在每次执行服务解析操作时,Laravel 容器都会重新创建实例对象。...实例绑定的功能是将已经创建的实例对象绑定到接口以供后续使用,这种使用场景类似于 注册表。

    9K10

    3分钟短文:Laravel表单验证的“指挥中心”:FormRequest

    引言 上一章我们学习到,Laravel控制器内引入 ValidatesRequests trait,从而使得继承了基类控制器的类拥有了验证器的所有方法。...第二个方法是 rules,用于返回一个验证规则组成的数组。这个规则的写法,与上一章我们介绍的规则方法毫无二致。...下面我们根据业务逻辑,首先修改 authorize 方法,满足以下两个条件,才允许验证: 必须登录状态 用户必须发布过帖子 下面是代码的实现: public function authorize() {...最简单的,在路由文件内使用依赖注入实例化该类: Route::post('blogPosts/{blogPost}/comment', function (App\Http\Requests\CreateCommentRequest...写在最后 本文用了一个对博客帖子创建评论内容的方法,将验证规则在 FormRequest 内实现。

    68220

    CVE-2021-39165: 从一个Laravel SQL注入漏洞开始的Bug Bounty之旅

    事先声明:本次测试过程完全处于本地或授权环境,仅供学习与参考,不存在未授权测试过程。...本文提到的漏洞《Cachet SQL注入漏洞(CVE-2021-39165)》已经修复,也请读者勿使用该漏洞进行未授权测试,否则作者不承担任何责任 0x01 故事的起源 一个百无聊赖的周日晚上,我在知识星球闲逛...遗憾的是,Laravel的这个问题是出现在where()的第一个参数,官方并不认为这是框架的问题。 0x04 SQL注入利用 回到Cachet。...因为表结构已经知道,成功获取用户、密码: 0x05 后台代码审计 这个注入漏洞的优势是无需用户权限,但劣势是无法堆叠执行,原因我在星球的这篇帖子里有介绍过(虽然帖子里说的是ThinkPHP)。...以下是漏洞的生命时间线: Jul 19, 2021 - 漏洞发现 Jul 20, 2021 - SQL注入提交给Laravel官方,Laravel并不认为是自己的问题 Jul 19 ~ jul 30,

    99620

    3分钟短文:Laravel表单验证的“指挥中心”:FormRequest

    引言 上一章我们学习到,Laravel控制器内引入 ValidatesRequests trait,从而使得继承了基类控制器的类拥有了验证器的所有方法。...第二个方法是 rules,用于返回一个验证规则组成的数组。这个规则的写法,与上一章我们介绍的规则方法毫无二致。...下面我们根据业务逻辑,首先修改 authorize 方法,满足以下两个条件,才允许验证: 必须登录状态 用户必须发布过帖子 下面是代码的实现: public function authorize() {...最简单的,在路由文件内使用依赖注入实例化该类: Route::post('blogPosts/{blogPost}/comment', function (App\Http\Requests\CreateCommentRequest...写在最后 本文用了一个对博客帖子创建评论内容的方法,将验证规则在 FormRequest 内实现。

    95300

    AWVS14下载(Win、Linux、Mac)

    近期更新漏洞检查 更新了Apache Log4j RCE漏洞检查以检测漏洞的盲(延迟)实例 Apache Log4j RCE漏洞检查更新以检测 Web 服务器异常中的漏洞 Apache Log4j RCE.../2 伪标头服务器端请求伪造的新检查 通过 HTTP/2 标头对Web 缓存中毒 DoS 的新检查 对 HTTP/2 Web 缓存中毒的新检查 Ghost CMS 主题预览版 XSS 的新检查( CVE...更新了扫描仪以测试 Web 应用程序使用的自定义标头 Scanner 支持检测 HTTP/2 漏洞 改进了 Laravel CSRF 令牌的处理 增加了使用主安装的扫描引擎限制扫描目标的可能性 添加了配置对广告服务请求的阻止功能...传感器在 https 站点上不起作用 修正:并非所有路径都从特定的 Burp 状态文件导入 修复:解析特定 GraphQL 和 Swagger 2 文件时扫描仪崩溃 修复:特定的排除路径可能导致扫描仪挂起...修复了导致扫描仪挂起的问题 修复了在启用 AcuSensor 且未安装在 Web 应用程序上时导致无法检测到某些漏洞的问题 修复了用于在 IIS 中列出网站的 .NET AcuSensor CLI 参数中的问题

    2.8K40

    我是如何通过开源项目做到年入 80 万的?

    大家好,我是发哥。 不知道你是否还记得,去年我们曾经在公众号上发布过一篇文章《我是如何通过开源项目月入 10 万的?》...当时文章发布出来之后,受到了许多业界同行人士的转发分享,不少水友也表示里面给出的一些观点非常具有借鉴意义。...今天重新提起赚钱这个话题,是因为凌晨的时候,我偶然刷到 Hacker News 排名第一的帖子:《我通过 GitHub 赞助商达成年入 10w 刀的成就》: ?...这个帖子有多火,你们看看具体互动数值就知道了:600+ 点赞,200+ 评论,堪称是 HN 上少有的热帖。 我知道你们肯定也对此感兴趣,因此熬夜赶稿,写下了这篇文章(妈的又要秃了)。...正如作者一开始设想的一样,这个开源项目一炮而红,吸引了不少 Laravel 开发者的关注。

    99620

    基于 Redis 实现 Laravel 广播功能(下):在私有频道和存在频道发布和接收消息

    前缀,因为 Laravel Echo 目前没有提供这个前缀设置,而 private 方法又会在频道名称前面加上 private- 前缀,这会导致后端和前端的频道名称不一致(后端是 laravel_database_private-wechat.group...客户端: 然后在 /broadcast 视图,就可以在开发者工具 Console 标签中看到输出的问候信息了,这个信息来自私有频道的广播信息: 如果用户未认证、或者未通过授权(不再这个群里面),是无法接收到这个私有频道的广播事件消息的...在客户端接收存在频道消息 在 Laravel Echo 客户端,我们可以通过 Echo.join 加入某个私有频道返回 PresenceChannel 实例,然后在其基础上通过 listen 接收 Websocket...,可以在分发事件返回实例上调用 toOthers 方法告知系统将这个事件消息广播给排除当前用户的所有其他在线用户。...Laravel 应用中使用 Axios 库发送请求,这个请求头会自动设置,如果使用的是其他的 JavaScript 库,则需要手动设置,你可以这样获取这个 Socket ID: var socketId

    3.2K30

    Laravel8的迁移压缩、任务批处理、速率限制优化 | 文末抽奖

    之前写了一篇Laravel提高DB查询效率的文章,转发到群里后竟然有人质疑我说“Laravel是他好几年前用的框架,没想到现在还有人在用。” 纳尼,什么意思嘛?别忘了PHP是最好的语言!...个人认为Laravel是非常优雅的开发框架:优雅的设计模式、强大的功能实现、各种方便的扩展、持续的版本更新,更主要的是迄今为止我认为最优秀的技术开发社区。 我必须为Laravel打Call。...当在未执行任何其他迁移的情况下,你迁移数据库时,Laravel 将会先执行 schema 文件中的 SQL,再执行不包含在 schema 中的剩余迁移。...使用 RateLimiter facade 的 for 方法来定义一个速率限制器。for 方法第一个参数是速率限制器名称,第二个参数是一个闭包函数,该闭包函数返回速率限制器的配置。...HTTP 请求实例,你可以基于请求或当前认证的用户来动态设置速率限制。

    1.9K21

    完善你的Laravel异常处理

    report方法上报异常、这里是记录异常到 storage/laravel.log文件中,然后根据请求类型渲染异常的响应生成输出给到客户端。...异常实例 Laravel中针对常见的程序异常情况抛出了相应的异常实例,这让开发者能够捕获这些运行时异常并根据自己的需要来做后续处理(比如:在catch中调用另外一个补救方法、记录异常到日志文件、发送报警邮件...Illuminate\Auth\Access\AuthorizationException 用户请求未通过Laravel的策略(Policy)验证时抛出此异常 Symfony\Component\Routing...catch代码块中抛出与业务相关的更细化的异常实例方便开发者定位问题,我们将上面的 updateUserFavorites 按照这种策略修改一下 public function updateUserFavorites...$previous是一个实现了 Throwable接口类实例,在这种情景下我们因为捕获到了 QueryException的异常实例而抛出了 UserManagerException的实例,然后通过这个参数将

    2.8K20

    3分钟短文 | Laravel复杂SQL超多WHERE子句,本地作用域你没用过

    这一堆令人头皮发麻的where,还不算变态。更厉害的是加上多表联合查询,那就真的是 sql 的噩梦了。...然而对于laravel而言,这些全过程都可以拼装,你只需要关注筛选和操作,剩下的组装sql的过程,laravel都帮你做好了。...这样把拼装where子句的工作,提前到查询数组的操作上,就更加灵活了。 比如说,and 查询条件的连接问题不大,最头疼的是加上 or 查询,就要顾着个顾那个,到处受限制。一般我们这样处理。...优雅的SQL laravel号称最优雅的PHP框架,不是浪得虚名,其设计的编程方式,可有效令人产生编程愉悦感。...Laravel 的软删除功能就是利用此特性从数据库中获取 “未删除”的模型。 你可以编写你自己的全局作用域,很简单、方便的为每个模型查询都加上约束条件。看官方给出的示例: ?

    2.8K10
    领券