首页
学习
活动
专区
圈层
工具
发布

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

有使用PHP组件的朋友, 应该会注意到组件里头会有一个文件 composer.json, 它描述了组件的信息: 名称, 描述, 关键词, 作者, GitHub仓库地址...还有它所依赖的子组件, 是 Composer...拿一个大家都知道的日志组件 monolog 的 composer.json 为例, 我说下一些比较重要的字段: { "name": "monolog/monolog", "description":...gelf-php": "Allow sending log messages to a GrayLog2 server", "sentry/sentry": "Allow sending log messages..., 在 所有 的组件中, 它是唯一的; require 该字段列举出该组件 所需的运行环境 以及 依赖的子组件的版本, 安装该组件时, 会检测运行环境, 并安装该组件的子组件, 以及这些子组件的所有子组件...镜像服务器提供了让我们得到 composer.json 的接口, 我们只需提交一个包名, 还有请求结果的哈希值(是不是很懵逼, 我怎么知道结果的哈希值), 镜像服务器会返回一个 JSON, 它包含了很多

59400

Composer 的安装技术教程迪威贵宾会编程I8Io8:830011

/monolog # 更新指定的多个包 $ composer update monolog/monolog symfony/dependency-injection # 还可以通过通配符匹配包 $...composer update monolog/monolog symfony/* 需要注意的时,包能升级的版本会受到版本约束的约束,包不会升级到超出约束的版本的范围。...remove 命令 remove 命令用于移除一个包及其依赖(在依赖没有被其他包使用的情况下),如果依赖被其他包使用,则无法移除: $ composer remove monolog/monolog Loading...连字符的左边表明了 >= 的版本,如果右边的版本不是完整的版本号,则会被使用通配符进行补全。...例子:^1.2.3 版本稳定性 如果你没有显式的指定版本的稳定性,Composer会根据使用的操作符,默认在内部指定为-dev或者-stable。

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

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

    Tip 2: 认识 "项目" 和 "库" 间的不同 创建的是“项目”还是“库”,意识到这点非常重要。这两者在使用过程中,都存在非常巨大的差异。...例如,使用形如 "symfony/symfony": "^3.1",有可能存在在 3.2 版本废弃的东西,而这会破坏你的应用程序在该版本下通过测试。...这会确保每一个人——你、你的合作伙伴、你的 CI 服务器以及你的产品服务器——所运行的应用程序拥有相同依赖的版本。 乍一看有些画蛇添足,在 Tip #3 中已经提过要使用明确的版本号的约束了啊。...你已经在版本库中提交了 composer.lock,开发 acme/my-library 的每个人都可能在使用 Monolog 的老旧版本。...现在我就在使用 PHP 7.2.0 ,也就意味着我安装的库可能在 7.1 版本中运行不了。如果生产环境跑的是 7.1 版本,安装就会失败。

    9K20

    为Symfony2和Redis正名,基于PHP的10亿请求周网站打造

    【编者按】如果你还在Symfony2和Redis使用中存在这样的错误观念:不能使用Redis作为主要存储;Symfony2的功能很多,以至于它的运行很慢,那么不妨看向Octivi的高请求网站打造。...我们保持Varnish在每个应用的服务器都保持高度可用性——没有单点故障。单个Varnish分配流量可能导致风险。分离的Varnish实例可能降低缓存hit,不过我们可以接受这个。...Application’s Architecture Symfony2功能 Symfony有一些很棒的功能,这些功能使开发过程变得更容易,下面我们绍开发者最喜欢的一些功能: 注释 我们使用带注释的Symfony2...Symfony2监控—Monolog和Stopwatch 应用使用Monolog记录意料之外的行为,捕获错误信息。我们使用多个信道获取不同应用模块的分离的日志。...总结 多亏Symfony2,这种设置在保持高性能和高可用性的同时保持了友善的开发环境——可维持,稳定。实际上这是用作电商网站的关键子系统的关键业务需求。

    5.8K50

    Claude Code PHP开发子代理实战指南:打造你的现代PHP架构师

    专精Laravel、Symfony和高性能PHP模式。在PHP优化和企业应用时主动使用。...使用PHP CS Fixer和PHPMD保证代码质量 ## 安全和性能关注 / Security and Performance Focus - 使用过滤函数进行输入验证和清理 - 使用预处理语句防止...SQL注入 - 通过适当的输出转义防止XSS - CSRF令牌实现和验证 - 使用password_hash()和Argon2进行密码哈希 - 速率限制和暴力破解保护 - 会话安全和Cookie配置 -...事件溯源和CQRS实现 - 带API网关模式的微服务 - 数据库分片和读副本策略 - 使用Redis和Memcached的缓存层 - 适当的作业处理和队列处理 - 使用Monolog和结构化数据记录日志...'服务器错误' : $e->getMessage() ], Response::HTTP_INTERNAL_SERVER_ERROR); } }

    41610

    各种实用的 PHP 开源库推荐

    语法吸收了 C 语言、Java 和 Perl 的特点,利于学习,使用广泛,主要适用于 Web 开发领域,是大多数后端开发者的首选。...PHP 日志工具 Monolog Monolog 是一种支持 PHP 5.3+ 以上的日志记录工具。并为 Symfony2 默认支持。...PHP 的 OAuth 库 Opauth Opauth 是一个开源的 PHP 库,提供了 OAuth 认证的支持,让你无需关注不同 Provider 之间的差别,提供统一标准的访问方法。...CSS-JS合并/压缩 Munee Munee是一个集图片尺寸调整、CSS-JS合并/压缩、缓存等功能于一身的PHP库。可以在服务器端和客户端缓存资源。...PHP 调试库 Whoops Whoops 适用于PHP环境的错误捕获与调试PHP库; whoops非常容易使用,它提供stack-based错误捕获及超美观的错误查看。

    2K10

    modern php 笔记(第一次阅读)

    ),可以使用$this关键字获取宾傲的内部状态 将php闭包当做函数和方法的回调使用 为php闭包附加并封装状态 使用use关键字 使用bindTo()方法附加闭包的状态 Zend OPcache...-2 :严格的代码风格 缩进 建议使用4个空格缩进 文件和代码行 php文件必须使用UNIX风格的换行符,最后要有一个空行,且不能使用php关闭标签,每行代码不超过80个字符,至多不能超过120个字符...: Aura Laravel Symfony Yii Zend 查找组件 在Packagist(https://packagist.org)查找现代php组件 Awesome PHP (https:...,如果验证失败返回值是false 推荐验证功能的组件 aura/filter respect/validation symfony/validator ==建议:输入数据既要验证也要过滤,以此确保输入数据时安全的...php报告错误 在开发环境中要显示错误 在生产环境中不能显示错误 在开发环境和生产环境中都要记录错误 whoopse组件 在开发环境中显示错误和异常 monolog 组件 在生产环境中 记录日志 主机

    1.9K20

    使用HAProxy、PHP、Redis和MySQL支撑10亿请求每周架构细节

    状态: 服务器 3个应用程序节点 2个MySQL+1个备份 2个Redis 应用程序 应用程序每周处理10亿请求 峰值700请求每秒的单Symfony2实例(平均工作日约550请求每秒) 平均响应时间...Symfony2应用程序 应用程序本身基于Symfony2建立,这是一个PHP全堆栈框架,提供了大量加速开发的组件。...在选用Symfony2之前,我们做了大量的性能测试以保证应用程序可以支撑计划流量。我们制定了概念验证,并使用JMeter执行,我们得到了让人满意的结果——每秒700请求时响应时间可以控制在50毫秒。...应用程序分析与监控 我们使用Symfony2工具来监视应用程序,在收集指定方法执行时间上表现的非常不错,特别是那些与第三方网络服务交互的操作。...同时,日志被存储在不同的文件中,也就是Monolog库下的“channels”。

    3.5K60

    PHP日志管理神器 Monolog

    概述 Monolog 是一个流行的 PHP 日志记录库,它提供了强大的功能来帮助开发者在应用程序中进行日志记录。...:2、使用加工程序(Processor): '); Monolog提供了一些内置的加工程序,你可以在你的项目中使用它们。...如果你单独使用 Monolog, 并且在寻找一种简单的方式来配置许多处理器,那可以用 theorchard/monolog-cascade。...这通常在大型项目中非常有用(而且被Symfony2的MonologBundle所使用)。 假设有两个日志服务实例共享了一个处理器,这个处理器将日志写入单个日志文件。...比如使用了废弃了的API,错误地使用了一个API,以及其他不希望发生但是并非必要的错误。 错误 ERROR (400): 运行时的错误,不需要立即注意到,但是需要被专门记录并监控到。

    1.3K10

    2026 年 PHP 的三大优势 这门老将为何依然重要

    一个"纯PHP"的API入口(展示基本形态)即使你在生产环境使用Laravel或Symfony(大多数正经应用确实该用),看看PHP为何在Web工作中高效还是有帮助的。...这个转变是现代PHP比老刻板印象更易维护的重要原因。框架:用无聊的方案解决无聊的问题(这正是重点)框架可能被过度使用,但"不用框架"的做法在应用增长后往往更糟。...Laravel和Symfony为你不想重新发明的东西提供了可靠的默认方案:路由和中间件校验和请求处理DI容器模式缓存和队列数据库迁移结构化的错误处理大多数生产事故不是来自精妙的业务逻辑,而是来自胶水代码...:超时、重试、不一致的校验、部分失败、意外的payload、不一致的错误响应。...规则二:游标应该是不透明的且防篡改游标通常是一个类似(created_at,id)的对,序列化给客户端。Base64编码在传输时没问题——但不是安全措施。如果你想防止客户端伪造游标,就签名它。

    20510

    十大Docker记录问题

    TCP或Unix套接字连接流畅 Splunk - HTTP / HTTPS转发到Splunk服务器 Gelf - UDP日志转发到Graylog2 要获得完整的日志管理解决方案,还需要使用其他工具: 日志分析器构建日志...一旦使用其他日志记录驱动程序,例如Syslog,Gelf或Splunk,Docker日志API调用开始失败,“docker logs”命令显示报告限制的错误,而不是在控制台上显示日志。...Docker Syslog驱动程序在目标关闭时丢失日志 与上面的问题2类似,导致日志丢失的原因是Docker日志记录驱动程序在无法将日志传送到远程目标时缓冲日志的能力。...7.在Splunk驱动程序失败时,Docker容器在创建状态下陷入困境 如果Splunk服务器在容器启动时返回504,则实际启动容器,但Docker报告容器未能启动。...一些问题报告了使用GELF驱动程序解析DNS /缓存的问题,因此当您的Graylog服务器IP更改时,您的日志可能会被发送到“Nirvana” - 这可能会使用容器部署快速发生。 10.

    3.3K40

    PHP 服务实现性能剖析、跟踪和可观察性最佳实践

    业务场景 随着业务越来越复杂,系统也随之进行各种拆分,特别是随着微服务架构和容器技术的兴起,看似简单的一个应用,后台可能有几十个甚至几百个服务在支撑;一个前端的请求可能需要多次的服务调用最后才能完成;当请求变慢或者不可用时...直接上报数据 “不通过Agent而直接上报数据的原理(传统框架。...= new \Monolog\Logger('log'); $logger->pushHandler(new \Monolog\Handler\ErrorLogHandler());...开通ARMS 开通ARMS地址 https://arms.console.aliyun.com/ (一般有15天试用) 2....“如果你的服务器在阿里云上可以用阿里云vpc网络接入点,本示例用的是阿里云公网接入点 安装 通过composer安装: composer require openzipkin/zipkin 使用 1.

    42910

    PHP的使用技巧总结

    PHP,作为一种广泛使用的服务器端脚本语言,有句话广为流传:"php是这个世界上最好的语言",因其简单易学、功能强大而受到广大开发者的青睐。下面则总结一下PHP的使用常用技巧。...= [1, 2, 3, 4, 5]; $squared = array_map(fn($n) => $n * $n, $numbers); 使用命名空间和自动加载 在处理大型项目时,有效的代码组织是非常关键的...使用PDO和预处理语句是防御SQL注入的有效手段: // 使用PDO和预处理语句防止SQL注入 $pdo = new PDO('mysql:host=hostname;dbname=database',...通过 composer.json 文件定义依赖关系,并使用 composer install 命令安装依赖: { "require": { "monolog/monolog":...单元测试 编写单元测试不仅可以确保代码的正确性和健壮性,还能帮助在项目扩展和重构时避免引入新的错误。PHPUnit是PHP中最流行的单元测试框架。

    37210

    小白也能轻松搞定!一文读懂日志数据清理与生命周期管理

    Security:与安全相关的事件,涉及权限变更、登录失败、暴力破解尝试等。Network:与网络相关的事件,涉及网络连接、带宽使用、数据包传输等。...[ERROR]:表示发生了异常或系统警告,通常需要开发者或运维人员关注和处理的情况。例如,在本日志中出现的“暴力破解攻击检测”就是一种错误级别的事件。...Failed login attempt:登录失败尝试,这表明某个用户(如 root 用户)在尝试登录时未能成功。这通常是信息级别的记录,帮助开发者了解系统访问的状态。...只有当日志级别高于或等于设置的级别时,日志才会被记录。log方法:根据日志级别记录日志信息。使用外部库进行日志管理使用外部库可以简化日志管理的复杂性。Monolog是PHP中一个流行的日志库。...以下是使用Monolog的示例:<?

    66340

    PHP之内置web服务器

    前言 PHP从5.4开始,就提供了一个内置的web服务器。 这个主要是用来做本地的开发用的。不能用于线上环境。现在我就介绍一下这个工具如何使用。...比如 Laravel 和 Symfony。 Laravel 在Laravel中的安装一节中介绍了一个命令可以使用PHP内置web服务器实现外部访问的命令。...Symfony 如果你在使用 Symfony 框架话,发现Symfony有一个组件叫做web-server-bundle,这个组件的作用跟Laravel相同,也是不借助web服务器,实现通过浏览器访问应用程序...里面有一个问题就是使用pcntl_fork, 该扩展在Windows中是不受支持的. 所以 Symfony框架会提示使用php bin/console server:run命令运行程序....总结 通过我们学习 PHP 命令实现web服务器访问以及对 Laravel 和 Symfony 框架的分析, 让我了解到在Windows的开发过程中,我们完全可以借助该方式来摆脱对web服务器的依赖.既能方便我们在

    4.1K10

    yii2反序列化后续

    昨天早上上班前,我无意间看到其它师傅们挖的yii2利用链,其中有一个是我之前忽略了的,就想着赶紧分享给大家,但是昨天恰了个饭(文末有福利),发不了文章,只有今天发了 这是一条利用__wakeup魔术方法作为入口的利用链...我当时也没有去搜这个错误是啥意思,以为是normalizer_is_normalized内部还有其他机制,然后我就去找了一下其他的__toString方法,但是都报这个错(其它利用链我会在后面提到) 后来去查了一下...,原来是php版本问题,PREG_UNMATCHED_AS_NULL这个静态变量只在php7.2以上才有,而我用的是php7.1,所以升级一下,然后测试,结果 又报错了...如下 ?...> yii2真是一个练习反序列化连挖掘的好靶场,我们可以通过它来练习各种魔术方法在反序列化链构造中的使用 php所有的魔术方法如下: __construct(),类的构造函数 __destruct()...可以看到,($this->value)()这种形式是利用不了__invoke的 简单记录下这个错误,也算是给大家排个坑吧

    1.5K30

    PHP之内置web服务器

    前言 PHP从5.4开始,就提供了一个内置的web服务器。 这个主要是用来做本地的开发用的。不能用于线上环境。现在我就介绍一下这个工具如何使用。...比如 Laravel 和 Symfony。 Laravel 在Laravel中的安装一节中介绍了一个命令可以使用PHP内置web服务器实现外部访问的命令。...Symfony 如果你在使用 Symfony 框架话,发现Symfony有一个组件叫做web-server-bundle,这个组件的作用跟Laravel相同,也是不借助web服务器,实现通过浏览器访问应用程序...里面有一个问题就是使用pcntl_fork, 该扩展在Windows中是不受支持的. 所以 Symfony框架会提示使用php bin/console server:run命令运行程序....总结 通过我们学习 PHP 命令实现web服务器访问以及对 Laravel 和 Symfony 框架的分析, 让我了解到在Windows的开发过程中,我们完全可以借助该方式来摆脱对web服务器的依赖.既能方便我们在

    4.7K30
    领券