你生产环境的Composer是怎么样的?
下面由composer教程栏目带大家介绍Composer生成环境 ,希望对需要的朋友有所帮助!
composer 解析
如果大家比较急,请直接看到最后一条命令即可
composer 配置项
具体的每个配置项细节请参考 Composer 官网
配置列表
ID | 配置项 | 说明 |
---|---|---|
1 | name |
包的名称,它包括供应商名称和项目名称,使用 / 分隔。 |
2 | description |
包描述 |
3 | version |
版本 |
4 | type |
安装类型 |
5 | keywords |
关键字 |
6 | homepage |
项目主页 |
7 | time |
版本发布时间 |
8 | license |
许可协议 |
9 | authors |
作者 |
10 | support |
支持,获取项目支持的向相关信息对象。 |
11 | require |
自动加载的包 |
12 | require-dev |
在DEV下自动加载的包 |
13 | conflict |
此列表中的包与当前包的这个版本冲突。它们将不允许同时被安装 |
14 | suggest |
建议安装的包,它们增强或能够与当前包良好的工作。这些只是信息,并显示在依赖包安装完成之后,给你的用户一个建议,他们可以添加更多的包。 |
15 | autoload |
自动加载,分别有四种加载机制 psr-4 psr-0 classmap file
|
16 | include-path |
保留传统,不建议使用 |
17 | target-dir |
定义当前包安装的目标文件夹 |
18 | minimum-stability |
安装包的时候通过稳定性过滤包的默认行为, dev alpha beta RC stable 可选 |
19 | prefer-stable |
安装包的时候优先使用更稳定的包版本, "prefer-stable": true
|
20 | repositories |
使用自定义的包资源库。默认情况下 composer 只使用 packagist 作为包的资源库。通过指定资源库,你可以从其他地方获取资源包。 |
21 | config |
配置参数,eg:process-timeout vendor-dir
|
22 | scripts |
Composer 允许你在安装过程中的各个阶段挂接脚本。 |
23 | extra |
任意的,供 scripts 使用的额外数据。 |
24 | bin |
该属性用于标注一组应被视为二进制脚本的文件,他们会被软链接到(config 对象中的)bin-dir 属性所标注的目录,以供其他依赖包调用。 |
25 | archive |
这些选项在创建包存档时使用。 |
开发种配置详细说明
11. require
标识符 | 含义 | 实例 |
---|---|---|
^ |
安装的最新版本 |
"barryvdh/laravel-cors": "^0.10.0" 安装laravel-cors最新版本 |
~ |
标识安装的最后一位区间版本 |
"barryvdh/laravel-cors": "~0.10.0", 安装laravel-cors 0.10.0-0.10.9
|
12. require-dev
-
composer install
会安装require-dev
中的包,require
中的包 -
composer install --no-dev
只会安装require
中的包
22. scripts
"scripts": { "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate" ], "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover" ] }
scripts
是自定义执行SHELL命令,如上代码中,执行post-root-package-install
执行复制文件。
15 autoload
PHP 自动加载文件,分别有四种加载机制
psr-4
psr-0
classmap
file
修改完 autoload 的内容之后要记得执行
composer dump-autoload
来重新生成加载文件
prs-4
- 该目录下的 PHP 文件 采用 PSR-4 自动加载标准
- Composer会将该结构下的文件映射关系写入
autoload_classmap.php
"autoload": { "psr-4": { "App\\": "app/" } }
prs-0
- 该目录下的 PHP 文件 采用 PSR-0 自动加载标准
- Composer会将该结构下的文件映射关系写入
autoload_namespaces.php
"autoload": { "psr-4": { "Cx\\": "prs0/" } }
classmap
- Composer 加载
lib/
目录下的所有文件,放入到autoload_classmap.php
{ "classmap":["lib/"] }
file
- Composer 加载
src/test.php
该文件,放入到autoload_files.php
{ "files":["src/test.php"] }
命令篇
详细命名请参考 Composer 命令行
composer install
先安装composer.lock
文件中packages
中的版本;即使composer.json
与 composer.lock
中版本不一致
安装流程图
composer update
先安装composer.json
的版本,并且更新composer.lock
中 packages
中的版本
安装流程图
composer dump-autoload
CMD | 说明 | 应用场景 |
---|---|---|
composer dump-autoload |
打印自动加载索引,就是将 autoload 中的各项加载到本该指定的目录。 |
开发环境 你更新了 autoload 中的各项, |
composer dump-autoload -o |
转换 PSR-0/4 autoloading 到 classmap 获得更快的载入速度 | 适用于生产环境 |
composer dump-autoload -o --no-dev |
禁用 autoload-dev 规则 | 适用于生产环境 |
composer dump-autoload --classmap-authoritative |
只加载 ClassMap中的文件,必到磁盘文件系统进行任何检查 | 适用于生产环境 |
因此生产请使用
composer dump-autoload -o --no-dev --classmap-authoritative
Atas ialah kandungan terperinci 你生产环境的Composer是怎么样的?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Komposer menyediakan ciri lanjutan, termasuk: 1. Alias: tentukan nama yang sesuai untuk pakej untuk rujukan berulang; , kekangan kepuasan dan alias pakej menyelesaikan keperluan berbeza berbilang pakej untuk versi pergantungan yang sama untuk mengelakkan konflik pemasangan.

Jawapan: Perkhidmatan mikro PHP digunakan dengan HelmCharts untuk pembangunan tangkas dan kontena dengan DockerContainer untuk pengasingan dan kebolehskalaan. Penerangan terperinci: Gunakan HelmCharts untuk menggunakan perkhidmatan mikro PHP secara automatik untuk mencapai pembangunan tangkas. Imej Docker membenarkan lelaran pantas dan kawalan versi perkhidmatan mikro. Piawaian DockerContainer mengasingkan perkhidmatan mikro dan Kubernetes mengurus ketersediaan dan kebolehskalaan bekas. Gunakan Prometheus dan Grafana untuk memantau prestasi dan kesihatan perkhidmatan mikro, serta mencipta penggera dan mekanisme pembaikan automatik.

Cara menukar tatasusunan PHP kepada objek: gunakan kelas stdClass, gunakan fungsi json_decode(), gunakan perpustakaan pihak ketiga (seperti kelas ArrayObject, perpustakaan Hydrator)

Kawalan versi kod PHP: Terdapat dua sistem kawalan versi (VCS) yang biasa digunakan dalam pembangunan PHP: Git: VCS yang diedarkan, tempat pembangun menyimpan salinan asas kod secara setempat untuk memudahkan kerjasama dan kerja luar talian. Subversion: VCS Berpusat, salinan unik pangkalan kod disimpan pada pelayan pusat, memberikan lebih kawalan. VCS membantu pasukan menjejaki perubahan, bekerjasama dan kembali ke versi terdahulu.

PHPCI/CD ialah amalan utama dalam projek DevOps yang mengautomasikan proses binaan, ujian dan penggunaan, dengan itu meningkatkan kecekapan pembangunan dan kualiti perisian. Saluran paip PHPCI/CD biasa terdiri daripada peringkat berikut: 1) Penyepaduan Berterusan: Setiap kali kod berubah, kod dibina dan diuji secara automatik. 2) Penggunaan berterusan: Mempercepatkan penghantaran dengan menggunakan kod yang diuji dan bersepadu secara automatik ke persekitaran pengeluaran. Dengan melaksanakan saluran paip PHPCI/CD, anda boleh meningkatkan kecekapan pembangunan, meningkatkan kualiti perisian, memendekkan masa untuk memasarkan dan meningkatkan kebolehpercayaan.

Terdapat tiga teknologi utama untuk menggambarkan struktur data dalam PHP: Graphviz: alat sumber terbuka yang boleh mencipta perwakilan grafik seperti carta, graf akiklik terarah dan pepohon keputusan. D3.js: Pustaka JavaScript untuk mencipta visualisasi dipacu data interaktif, menjana HTML dan data daripada PHP, dan kemudian menggambarkannya pada sisi klien menggunakan D3.js. ASCIIFlow: Perpustakaan untuk mencipta perwakilan teks rajah aliran data, sesuai untuk visualisasi proses dan algoritma.

Menggunakan cache Redis boleh mengoptimumkan prestasi halaman tatasusunan PHP. Ini boleh dicapai melalui langkah berikut: Pasang klien Redis. Sambung ke pelayan Redis. Cipta data cache dan simpan setiap halaman data ke dalam cincangan Redis dengan kunci "halaman:{page_number}". Dapatkan data daripada cache dan elakkan operasi mahal pada tatasusunan besar.

Jawapan: Gunakan PHPCI/CD untuk mencapai lelaran pantas, termasuk menyediakan saluran paip CI/CD, ujian automatik dan proses penggunaan. Sediakan saluran paip CI/CD: Pilih alat CI/CD, konfigurasikan repositori kod dan tentukan saluran paip binaan. Ujian automatik: Tulis ujian unit dan penyepaduan dan gunakan rangka kerja ujian untuk memudahkan ujian. Kes praktikal: Menggunakan TravisCI: Pasang TravisCI, tentukan saluran paip, dayakan saluran paip dan lihat hasilnya. Laksanakan penyampaian berterusan: pilih alatan pengerahan, tentukan saluran paip pengerahan dan automatik penggunaan. Faedah: Meningkatkan kecekapan pembangunan, mengurangkan ralat dan memendekkan masa penghantaran.
