php包管理
1.语法:PHP 的语法看起来就像没有经过精心设计一样,很随意。有的语法看似很方便(用点来连接字符串), 但是却为之后扩展造成了很多麻烦(点没法用于访问对象的成员), 再比如比较蛋疼的命名空间的语法。Python 相比之下要好一点,但是 Python2 和 Python3 直接存在着一些不兼容的语法变动。
2.编写 HTML 模版:PHP 可以非常方便地直接用来编写 HTML 模版,Python 需要借助其他的语言或库来实现。
3.包管理器:PHP 的包管理器(PEAR)和扩展管理器(PECL)恐怕根本没人用,这导致引入一个新依赖的成本很高,于是很多人倾向于自己造轮子而不是引入现成的库。Python 有统一的包管理器,虽然也有问题,但要比 PHP 好得多,引入库之后的命名空间管理也要比 PHP 好。
4.扩展和库:PHP 和 Python 都可以用 C 来编写扩展。相比之下 Python 可用的库要更多一点。
5.运行方式:PHP 运行方式比较单一(php-fpm, mod_php), Python 则可以以 fastCGI 运行,也可以自行监听端口来处理请求。
6.性能:因为 PHP 运行方式单一,opcode 缓存方案也比较成熟(APC, opcache),缓存 opcode 之后运行速度很快。Python 则可能需要更多地自行优化性能。
7.类型系统:PHP 和 Python 都是动态类型。PHP 对类型判别比较模糊,有很多陷阱,Python 则严格一些。
8.学习成本:PHP 和学习成本都不是很高。PHP 优势在于有比较完整的官方中文文档,而且 PHP 应用领域只有 Web, 所以需要学习的内容较少。Python 因为学习路线较多,不太容易找到适合自己的教程和资料。
9.社区:PHP 的资料遍地,但是高质量的中文社区较少,普遍对官方的新功能不是很关注。Python 则要好一点。
10.应用领域:PHP 仅在 Web 后端方面被使用,Python 应用领域更广泛一点,如果需要将逻辑移植到其他平台(如桌面), Python 要方便一点。
㈡ 制作自己的composer包,搭建satis私有仓库
Composer是PHP的包管理工具,用于简化依赖管理和项目构建。在企业内部使用私有Composer包,能更高效地分发和管理代码,减少重复劳动。以下是制作私有Composer包并搭建Satis私有仓库的详细步骤。
前提条件:确保安装了Composer、Git,以及拥有公网IP的机器和域名解析服务。
制作Composer包:
1. 创建空目录并执行Composer初始化命令。初始化命令会引导你配置Composer.json文件。
2. 填写包名、描述信息、作者、最小稳定版本和项目类型。这里通常选择默认类型。
3. 设置许可类型为宽松的MIT许可。
4. 选择是否设置依赖环境或其它包。如果需要添加依赖,可以搜索并输入包名。
5. 确认生成composer.json文件并安装依赖。
6. 生成文件结构。此时包内无内容,需要添加测试功能代码。
7. 在composer.json文件中添加PSR-4自动加载映射。在项目根目录下新建src目录,在Test.php文件中编写测试代码。执行composer mp-autoload命令,生成自动加载配置。
8. 在根目录下新建index.php文件用于测试代码。
上传GitHub:
1. 创建GitHub仓库并将项目代码上传。
2. 通过Git命令上传至GitHub。
搭建Satis仓库:
1. 使用Satis工具搭建私有仓库,原理是将Git仓库的Composer包拉取后制作静态文件,形成简单的UI界面,提供包的分发下载服务。
2. 选定公网机器并新建satis.json配置文件,定义仓库结构。
3. 使用Composer/satis镜像拉取内容打包静态文件和UI界面。
4. 在宿主机下生成output文件夹,部署Nginx容器运行静态UI界面。
5. 域名解析至宿主机的8881端口,通过宝塔反向代理解析,完成Satis私有仓库搭建。
测试与部署:
1. 使用不重要的项目进行测试,修改composer.json文件添加私有源配置。
2. 更换全局Composer源拉取私有包。
3. 为私有仓库取消HTTP安全检查,确保能成功拉取。
参考教程:Hub.docker.com提供Satis镜像,而zhuanlan.hu.com则有更详细的构建和部署指南。
㈢ 怎么使用php 包依赖管理工具 composer 执行命令安装
CentOS7下安装Composer安装Composer1、将composer.phar下载到项目中使用curl-sShttps://getcomposer.org/installer|php下载Composer的二进制文件,是一个PHAR包(PHP的归档)2、可以通过--install-dir选项指定Composer的安装目录(它可以是一个绝对或相对路径):curl-sShttps://getcomposer.org/installer|php----install-dir=lumen3、如果把composer.phar放在系统的PATH目录中,就能在全局访问composer.phar。在类Unix系统中,你甚至可以在使用时不加php前缀。可以执行这些命令让composer在你的系统中进行全局调用:#mvcomposer.phar/usr/local/bin/composer现在只需要运行composer命令就可以使用Composer而不需要输入phpcomposer.phar。4、检查Composer是否正常工作,只需要通过php来执行PHAR:phpcomposer.phar这将返回给你一个可执行的命令列表。使用Composer要在项目中使用Composer,只需要一个composer.json文件。该文件包含了项目的依赖和其它的一些元数据。现在使用Composer来安装项目的依赖。1、创建composer.json文件在当前目录下创建composer.json文件,在composer.json文件中指定requirekey的吵凳值。简单的告诉Composer你的项目需要依赖哪些包。例如:{"require":{"monolog/monolog":"1.0.*"}}可以看到,require需要一个包名称monolog/monolog映射到包版本1.0.*的对象。包名称由供应商名称和其项目名称构成。2、安装依赖包执行install命令获取定义的依赖到本地项目:phpcomposer.pharinstall如果你进行了全局安装,并且没有phar文件在当前目录,使用下面的命令代替:composerinstall这将会找到monolog/monolog的最新版本,并将它下载到vendor目录。这是一个惯例把第轮棚三方的代码到一个指定的目录vendor。如果是monolog将会创建vendor/monolog/monolog目腊碰则录。注意:install命令将创建一个composer.lock文件到你项目的根目录中。3、自动加载除了库的下载,Composer还准备了一个自动加载文件,它可以加载Composer下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中:require'vendor/autoload.php';现在我们就可以使用monolog了