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

【译】现代化的PHP开发--Composer

1 包管理 通常来说,一组代码块组成一个方法,一组方法组成一个类,一组类形成一个包(package)。 可重用的包可以放入任何一个项目中,并且无需再添加任何功能即可使用。...如果我们需要数百个用户的数据,会发生什么?我们需要一个救世主。 在Packagist上刚好有我们想要的包,这个很棒的包叫做 Faker。 接下来,我们就可以使用composer来安装 Faker。...composer install: 这个命令运行,首先会查找项目中是否有composer.lock文件,如果文件存在,则安装按文件中定义的包的确切版本,然后忽略composer.json文件。...如果不存在,该命令将检查composer.json文件中定义的包,并下载与提供的版本约束匹配的包的最新版本。你能看出区别吗?...我们在生产环境中不应该使用这个命令,以下是为什么的原因: 如果您的应用程序在本地开发环境中与Faker 1.2.0配合得很好,则可以将代码推送到生产环境并运行composer update。

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

    你必须知道的 17 个 Composer 最佳实践(已更新至 22 个)

    万一有两个库的请求存在冲突,比如一个要 ~3.1.0 ,另一个需要 ~3.2.0 ,则安装会失败。...Tip 9: 进行版本衍合或合并时不要合并 composer.lock 如果你在 composer.json (和 composer.lock)中添加了一个新依赖项,并且在该分支被合并前主分支中添加另一个依赖项...追加一个 --direct (或 -D)参数开关是个聪明之举,这只会查看 composer.json 指定的依赖项。还有一个 -m 参数开关,只查看次版本号的升级列表。...Tip 12: 在 composer.json 中定义其他类型的依赖 除了定义库作为依赖项外,也以在这儿定义其他东西。...你的应用就可以运行 7.1 或 7.2 版本下,而且同时指定了平台版本为 7.1 (这意味着依赖项的升级版本要和 平台版本 7.1 保持兼容): "require": { "php": "7.1

    7.6K20

    掌握Composer插件的作用与特点

    Composer是一个功能强大的依赖管理工具,可以帮助我们快速方便地引入、更新和管理第三方库。除了管理依赖之外,Composer还有一个特性,那就是插件系统。...Composer插件可以让我们在Composer执行的不同生命周期阶段插入自己的逻辑,并且对Composer的行为进行定制。 那么,Composer插件到底有什么作用和功能呢?...首先,我们需要一个Composer插件的基本结构,一个插件主要包含两个文件:Plugin类和composer.json文件。...} } 在Plugin类中,有三个方法非常重要:activate、deactivate和uninstall。...除此之外,还可以通过插件实现很多其他定制化的逻辑,例如版本冲突检查、依赖分析等等。在实际的项目开发中,结合Composer插件的功能,我们能够更好地管理依赖,提高开发效率和项目质量。

    18710

    composer (一) -- 依赖管理

    你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。类似于 go 的 go mod。...一路回车就可以创建一个没有什么依赖的 composer.json 文件。...打开 vendor 目录,其中是项目依赖的包及包依赖的其他包的源码,还有一个自动加载文件 – autoload.php install and update 安装更新项目所有依赖 并不是每个项目都是新创建的项目...,在平常的开发中,往往会更换机器或者对项目进行部署,通常都是使用代码版本管理工具,如 git、svn 等。...对于一个刚刚拉取下来的项目,一般会把 verder 目录设置为忽略上传的目录,所以我们需要安装所有的依赖,由于 composer.json 文件已经包含了所有依赖的信息,我们再使用 composer require

    1.8K30

    PhpStorm 2018中文破解版附安装破解教程

    四、版本控制 1、GitHub拉请求 您现在可以在PhpStorm中处理拉取请求。...选择VCS | Git | 在菜单中查看Pull Requests以打开一个新工具窗口,其中包含项目中所有拉取请求的列表。您可以从拉取请求中查看说明,受理人,审阅者,标签和已更改的文件。...3、忽略空格 现在,您可以在合并时忽略或修剪空格 – 该配置可在“ 合并修订…”对话框顶部的新下拉列表中使用。当您对文件使用Annotate时,默认情况下也会忽略空格。...还可以重命名标签名。在sublime text中有个类似的快捷键:ctrl+shift+d。 2、shift + F6: 除了重构函数名,之外还可以重构div闭合标签等等。...还有一个软回车,是经常用到的。

    4.3K20

    基于 Symfony 组件封装 HTTP 请求响应类

    接下来,学院君会以前面作业中编写的博客系统为例,构建一个简单的 PHP MVC 框架。...框架,它提供了丰富的 PHP 组件集,可以独立于 Symfony 框架之外使用,你可以在这里看到 Symfony 提供的全部组件集:Symfony Components,这是 Symfony 作为框架之外对...在 Request 子类中新增了两个方法,用于初始化 HTTP 请求和获取请求路径,而 Response 和 Session 目前没有定义任何新增方法: 在路由分发代码中,可以看到,之前的 _GET、_SERVER 超全局变量已经不见踪影,取而代之的,我们通过调用 request 实例上的 getPath 方法获取请求路径信息,作为路由分发的依据,在获取请求参数时...,也调整为了调用 request->get() 方法,然后传入参数名作为键,该方法可以获取所有请求参数,包括 GET 请求和 POST 请求的(换言之,就是查询字符串和请求实体中的参数)。

    8.7K20

    进击的JAMStack

    所以JAMStack是一种问题解决方案,而不是一个具体的实现。 接着我们再具体看一下JavaScript,APIs和Markdown这三种技术在JAMStack的世界中是起到什么作用的。...除了Markdown文件之外,JAMStack的静态数据源还可以是其它的东西,例如我们后面说到的Gatsby(JAMStack的一种实现)就允许通过插件的方式使用SQL直接读取数据库的内容来生成静态页面...那么除了这些比较简单的文档性和博客网站,JAMStack可以用来构建复杂的商业应用吗?...JAMStack的优势 在上面的介绍中我已经大概说了一些JAMStack的优势了,其中包括SEO友好还有流畅的用户体验,那么除了这些,JAMStack还有没有其它吸引人的地方呢?...这类应用的内容除了频繁更新之外,还有就是动态内容多于静态内容,例如用户的主页只会展示他关注的人发表的动态,所以也不适合使用JAMStack。 一些不需要SEO的应用。

    2.9K30

    为什么应该使用RESTful Web服务设计

    或者在不同的平台上有不同的客户端。如果您选择自己的惯例而不是选择现有的范例,那么这个困难就会被放大。不要这样做。你会冒着把大量时间花在考虑不重要的事情和忽略重要的事情上的风险。...稍后我将给出更多示例,但首先,重要的是要记住,除了RESTful web服务之外,还有更多范例存在。 在我们深入探讨可用的选择之前,您如何知道选择哪种API设计范式?做这个决定可能很棘手。...当客户机有非常相似的需求和工作流,并且可能在不同的平台上时,在HTTP上REST非常好。 当带宽很贵,并且您不确定客户需要什么时,GraphQL很不错。...除此之外,只有有限的方法可以对这些资源进行操作:GET、POST、PUT、PATCH和DELETE。有一些其他的应用,但这些是大的。这并不意味着您的整个API将变成CRUD(创建、读取、更新、删除)。...想想以前那些使用返回错误状态码的API 我发现查看HTTP状态代码对了解在资源上操作时会发生什么很有用。无法找到资源吗?我如何知道是消费者犯了错误(4xx)而不是服务器(5xx)?

    1.5K30

    如何使用Redis进行微服务间通信

    在这篇文章中,我将介绍我过去必须处理的一个具体的痛点:服务间通信。 微服务有什么问题吗?...如果你的处理服务突然崩溃,不管它是什么原因,你的主API会怎样?它处理传入的请求吗?再次崩溃吗?在这里要诚实,在将连接代码写入数据库时,您在else子句中添加了多少次日志行?是的,我这样认为。...通过这种方式,您可以通过让他们决定在任何给定时间可以处理多少消息来消除将请求溢出的问题。 为此,需要在服务之间推一个消息队列,并转换为pub/sub方法。...您仍然保留了微服务的好处: 小型的,非常集中的进程彼此独立运行并且易于维护, 轻松的沟通, 简单的水平扩展, 能够在不影响平台其余部分的情况下工作和更改单个服务, 但是,您还可以在最需要处理过程之间获得一个缓冲区...上述代码的另一个关键方面是选择密钥的名称。注意,我如何使用消息ID属性和字符串“_processing”创建惟一的键。除了添加简单的键-值对之外,在使用Redis时,这是一种常见的做法。

    96420

    关于云迁移,企业需要了解的事

    当企业计划将业务迁移到云平台时,需要了解云计算迁移的模式列表,了解其可以做什么以及应该避免什么,这将有助于企业做出明智的决定。 当企业计划将业务迁移到云平台时,需要了解云计算迁移的模式列表。...企业需要了解其可以做什么以及应该避免什么,将有助于做出明智的决定。 ? 应该做的事项 (1)制定云迁移策略 企业在将业务运营迁移到云平台之前,制定详细的策略非常重要。...除了托管和存储数据的部署模型之外,还有三种用于不同类型计算的云服务基本模型—软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)。...在迁移到云平台之前,重要的是要对可能的风险和法规遵从性问题有深入的了解。如果企业在管理严格的行业(如处理敏感用户信息的医疗、法律或电子商务)中运营,那么必须遵守法规和标准。...寻求首席技术专家的建议将是一个明智的决定,因为他们可以指导企业进行迁移和保留。 (4)不要忽视治理基础设施的重要性 很多企业经常忽略建立治理基础设施的重要性。

    51020

    Composer系列之二

    上面图中警告出现的场景是我在composer.json中改了项目的name值,然后composer install。...update命令负责更新,从上面我们知道它能通过更新保证json和lock文件的一致,另外比如你在composer.json中修改了比如require(依赖)的增加或减少,执行 composer update...另外上面是在思路方面为大家介绍install 和 update,这两个命令还有很多参数,刚阿北看了下到很好了解,这里列出来不一一讲解,有不懂留言即可。...这也是一个回避 git 问题的途径,如果你不清楚如何正确的设置。 --dry-run: 如果你只是想演示而并非实际安装一个包,你可以运行 --dry-run 命令,它将模拟安装并显示将会发生什么。...好了,我们还没有说clear-cache命令那(clearcache一个意思) composer clearcache 流程明白了吧,记住,这个clearcache也同时删除了C:\Users\Administrator

    1.2K21

    Composer 镜像原理 (2) —— composer.json

    有使用PHP组件的朋友, 应该会注意到组件里头会有一个文件 composer.json, 它描述了组件的信息: 名称, 描述, 关键词, 作者, GitHub仓库地址...还有它所依赖的子组件, 是 Composer...其他字段对于理解镜像的原理没什么帮助, 有兴趣可以看下 这篇文章....镜像服务器提供了让我们得到 composer.json 的接口, 我们只需提交一个包名, 还有请求结果的哈希值(是不是很懵逼, 我怎么知道结果的哈希值), 镜像服务器会返回一个 JSON, 它包含了很多...composer.json (至少一个), 这些 composer.json 里面就有我们要找的组件的 composer.json (根据name字段), 也包括了其他包的, 为什么会带有其他包的呢,...还记得 请求结果的哈希值 吗? 这个哈希哪里来的, 为什么我可以提前知道这个请求的 JSON 的哈希值? 还有, 接口在哪里? 镜像服务器的官方网站, 并没有提供啊...

    36700

    基于 Composer 的 PHP 模块化开发

    在没有 Composer 之前我们是如何引入代码的呢?除了上面说的复制粘贴以外,在 PHP 中还有 pear,不过自从用过两次我就再也不用它了,一种说不出来的感觉。...composer.json 中 repositories 区块添加了一个项目源。...我可以给你一个特别简单的判断方法: 如果你的代码是一个完整的项目,就上传,如果是一个工具包,给大家用的,就别上传。...另外一种发布方式是闭源,公司内部用的包,上传到 GitLab 或者其它私有的代码托管平台,有两种玩法: 最容易的玩法,在 composer.json 中添加 repositories 直接用 vcs 指定代码库地址...这样做有一个缺点,当你的包很多的时候,你全都得在 composer.json 中加上才行。 2.

    1.6K50

    这一次,真正掌握composercomposer是现代PHP的基石初识composercomposer包管理规范

    开发过程中,要用到第三方的类库,需要去下载zip包,然后解压,放到相应的目录,处理好命名空间,自动加载的问题,如果这个第三方包还有其他依赖项,还要再次重复这个流程,看着隔壁家python和node.js...以monolog包为例,这个包可以让开发者很方便地将日记写入到文件、数据库或其他储存介质中。...composer.json,一行指令composer install,代码中引入autoload.php,即可完美地使用第三方包。...接下来分析composer的包管理规范 composer包管理规范 什么是包?只要存在composer.json文件的代码都可以称之为一个包。 包名称 包名称由作者+项目名称组成。...以mustache包为例: 在packagist查找 搜索包 点击进入包信息详情页,可以看到包的安装方法以及版本信息 安装包 除了在composer.json中写包的安装信息,还可以通过composer

    1.3K20

    接口自动化测试用例如何设计

    单接口测试 单接口测试主要验证接口的请求地址、请求类型、请求格式、请求参数、权限、返回值等为主,目的是保证接口能跑通,这类用例一般在接口设计完成后定稿,使用过程中可配合Mock服务完成用例编写。...还需要验证逻辑异常等情况下接口是否能够处理并给出友好的提示信息、提示是否准确清晰以及返回的信息是什么。通常情况下,关注参数的异常场景会比较多,可以用等价类、边界值等方法进行传参的设计。...最常见的就是token的获取,获取token的方法也有很多种,最常用的就是通过调用登录接口获取返回值中的token,用于后续接口的鉴权,还有一些开放平台接口,token有特定的生成规则,就可以将其写成脚本自动生成...除此之外,还有一些额外的验证点在需要的时候也可以进行校验,比如:返回的URL是否能访问、涉及到数据流转的、返回的数据是否真的有必要(避免返回数据量过大导致意外情况发生)。...公共参数 接口自动化测试中一个很重要的环境就是测试数据的准备,要想让脚本可以在多套环境中运行,那么测试数据就不能写得太死,需要根据具体环境去自动获取一些数据值。

    85620

    如何发布一个自己的Composer依赖包

    Composer是 用PHP开发的用来管理项目依赖的工具,当你在项目中声明了依赖关系后,composer可以自动帮你下载和安装这些依赖库,并实现自动加载代码。...步骤 要发布一个软件包,我们首先必须将它托管在版本控制系统存储库中。源代码应该放在根目录下,composer.json文件应该根据下面的规则进行适当的配置。之后,您可以在不同的平台上提交您的软件包。...创建代码仓库 在自己的github创建一个公共仓库,这里仓库名为hello,创建好后克隆代码到自己本机电脑 git clone git@github.com:Tinywan/hello.git Step2...PHP测试框架,单元测试是几个现代敏捷开发方法的基础,使得PHPUnit成为许多大型PHP项目的关键工具。...当然还有更多的细节和高级用法可以根据具体情况进行调整。希望对你有所帮助!

    46810

    如何在Debian 8上安装和使用Composer

    准备 在本教程中,您将需要: 一个Debian 8服务器,并设置了一个可以使用sudo命令的非root账户, 第1步 - 安装依赖项 在我们下载并安装Composer之前,我们需要确保我们的服务器已安装所有必需的依赖项...以下是在一个命令中执行此操作的方法: $ sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer...选择您要依赖的包 运行composer require以在composer.json文件中包含依赖项并安装程序包 我们将通过一个简单的演示应用程序,看它是如何工作的。...您可以在Composer的版本控制文档中阅读有关版本基本原理的更多信息。 到目前为止,我们已经了解了如何使用Composer使用Composer添加和限制项目所需的PHP库composer.json。...结论 Composer是每个PHP开发人员在其实用程序带中应具有的强大工具。除了提供一种简单可靠的方法来管理项目依赖关系之外,它还建立了一个新的事实标准,用于共享和发现社区创建的PHP包。

    1.6K20

    AI获奖名画申请版权被拒!作者624次提示打造

    还记得第一个获奖的AI画作《太空歌剧院》吗?最近它又来到聚光灯下—— 作者Jason Allen为它申请版权,被美国版权局拒绝。 理由是这幅画AI含量过高。...也就是成品中也包含大量人类劳动在里面。 既然如此,版权局提了一个要求,“将Midjourney、Gigapixel AI生成部分排除在版权声明之外”。 Allen拒绝了这一要求,又提出复审。...而类似情况还有很多,看来AI创作的版权问题还会在法律的模糊地带反复博弈很久…… 已获版权还能再反转 去年艺术家Kris Kashtanova在Midjourney中输入了这样的指令: Zendaya走出中央公园的大门...美国版权局表示该漫画书“不是人类作者的产物”,允许Kashtanova保留故事情节的版权。 之后,Kashtanova又转向了可以根据已有图像再绘制的Stable Diffusion。...世界最大的音乐公司之一环球音乐集团曾请求Spotify这样的流媒体平台阻止AI访问音乐数据。Spotify最近已从平台上清除了数千首AI生成的歌曲。

    23720
    领券