下面由composer命令使用教程栏目给大家介绍关于composer自动加载器优化,希望对需要的朋友有所帮助!
自动加载器优化
通常情况下,Composer 的自动加载器运行速度相对而言是比较快的。 但是,由于 PSR-4 和 PSR-0 的自动加载规则是在最终解析一个类之前需要去检查文件系统。这会导致自动加载的速度变得相当缓慢,但在开发环境中,这会是一种非常便捷的加载方式,因为当你新建了一个类时,加载器会立即发现并使用该类,而不需要你去重建自动加载器的配置。
这种加载规则导致的问题在生产环境中才真正体现出来,在生产环境中,你可以在每次部署之前非常轻松的重建配置,而且在部署之间不会随机出现新类,因此你不需要其一直检查文件系统,你通常都希望自动加载能尽可能快速的完成。
出于以上原因,Composer 提供了一些自动加载器的优化策略。
注意:你不应该在开发环境下使用本文所述的任何一种优化策略,因为这会导致你在添加或移除类时出现各种问题。事实上,在开发环境中应用这些设置所带来的性能提升和其所带来的问题相比,是远远不值得的。
优化级别 1:类映射生成
怎么运行它呢?
有几个选项可以启用此功能:
在 composer.json 的配置中设置 "optimize-autoloader": true
使用 -o / --optimize-autoloader 调用安装或更新
使用 -o / --optimize 调用 dump-autoload
它有什么作用?
类映射生成实质上是将 PSR-4/PSR-0 规则转换为类映射规则。这使得一切都快很多,因为已知的类映射会立即返回路径,而 Composer 可以保证类在那里,因此不需要文件系统检查。
在 PHP 5.6+ 中,类映射也缓存在 opcache 中,这大大改善了初始化时间。如果确保启用了 opcache ,那么类映射应该会立即加载,类加载也会很快。
权衡
这种方法没有真正的权衡。它应该始终在生产中启用。
唯一的问题是它没有跟踪自动加载 (即,当它找不到给定的类时),因此那些回退到 PSR-4 的规则仍然有可能导致文件系统检查速度变慢。要解决此问题,存在两个二级优化选项,如果您对项目中不存在的类执行了大量的 class_exists 检查, 那么可以决定启用这两个选项。
优化级别 2/A :权威类映射
怎么启用它呢?
有几个选项可以启用此功能:
在 composer.json 的 config 键中设置 "classmap-authoritative": true
使用 -a / --classmap-authoritative 调用安装或更新
使用 -a / --classmap-authoritative 调用 dump-autoload
它有什么作用呢?
启用此选项会自动启用 1 级类映射优化。
这个选项很简单,它说如果在类图中找不到某些东西,那么它就不存在,自动加载器不应该根据 PSR-4 规则试图查看文件系统。
权衡
此选项能使自动装填器始终快速返回。另一方面,它还意味着如果由于某种原因在运行时生成类,则不允许自动加载。如果您的项目或任何依赖项执行此操作,那么您可能会在生产中遇到 “未找到类” 的问题。小心启用它。
注意:这不能与级别 2/B 优化结合使用。您必须选择一个,因为它们以不同的方式解决相同的问题。
优化级别 2/B: APCu 缓存
怎么启用它呢?
有个选项可以启用此功能:
在 composer.json 的配置键中设置 "apcu-autoloader": true
使用 --apcu-autoloader 调用安装或更新
使用 --apcu 调用 dump-autoload
它有什么作用?
此选项将 APCu 缓存添加为类映射的备用。它不会自动生成类映射,因此如果您愿意,仍需手动启用 1 级优化。
无论是否找到类,该事实总是缓存在 APCu 中,因此可以在下一个请求时快速返回。
权衡
此选项需要 APCu ,它可能对您有用也可能不适用。它还使用 APCu 内存进行自动加载,但它是安全使用的,并且不会导致找不到类,如上面的权威类映射优化。
注意:这不能与级别 2/A 优化结合使用。您必须选择一个,因为它们以不同的方式解决相同的问题。
Atas ialah kandungan terperinci composer自动加载器优化. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Gabungan komposer dan AI dapat membantu para komposer membuat karya muzik novel. AI menjana klip baru dengan menganalisis data muzik yang boleh digunakan oleh komposer sebagai inspirasi atau mengintegrasikan secara langsung. Cabaran termasuk memastikan kedalaman emosi muzik dan keseimbangan penciptaan manusia.

Komposer memudahkan langkah -langkah pembangunan projek PHP termasuk: 1) menambah kebergantungan, seperti menambah "Laravel/rangka kerja": "^8.0" dalam Composer.json; 2) Memuatkan secara automatik, menghasilkan fail autoload.php dengan menentukan ruang nama dan classpath; 3) Mengoptimumkan prestasi, menggunakan ComposerDump-Autoload-O dan ComposerInstall-NO-DEV-Mengoptimumkan-Autoloader Commands. Melalui langkah -langkah ini, pemaju boleh menjadi lebih cekap dan mengelakkan kesilapan yang sama.

Unsur -unsur utama menjadi seorang komposer termasuk: 1. Menguasai Teori Muzik, 2.

Langkah -langkah untuk menjadi komposer termasuk: 1. Menguasai unsur -unsur asas muzik, seperti nota, irama, keharmonian, dan melodi; 2. Pilih alat teknikal yang sesuai, seperti AbletonLive; 3. Memahami proses penyusunan, termasuk pengambilalihan inspirasi, konsepsi, penulisan, pengubahsuaian dan penambahbaikan; 4. Mulailah dengan penciptaan melodi yang mudah dan secara beransur -ansur mencuba teknik kompleks seperti keharmonian; 5. menyelesaikan masalah biasa melalui teknik debugging, seperti pemilihan nota dan susunan irama; 6. Memohon pengoptimuman prestasi dan amalan terbaik, seperti menggunakan templat, kawalan versi, dan kerjasama.

Komposer adalah alat utama untuk membina aplikasi PHP yang mantap kerana ia memudahkan pengurusan pergantungan, meningkatkan kecekapan pembangunan dan kualiti kod. 1) Komposer mentakrifkan kebergantungan projek melalui fail komposer.json dan memuat turun secara automatik dan menguruskan kebergantungan ini. 2) Ia menghasilkan fail komposer.lock untuk memastikan bahawa versi ketergantungan konsisten dan dimuat secara automatik melalui vendor/autoload.php. 3) Contoh penggunaan termasuk penggunaan asas seperti menambah perpustakaan log, serta penggunaan lanjutan seperti kekangan versi dan pengurusan pembolehubah persekitaran. 4) Teknik debugging kesilapan biasa termasuk pengendalian konflik ketergantungan dan masalah rangkaian. 5) Cadangan Pengoptimuman Prestasi termasuk menggunakan fail komposer.lock dan mengoptimumkan pemuatan automatik.

Untuk menjadi mahir apabila menggunakan komposer, anda perlu menguasai kemahiran berikut: 1. Berfungsi dalam menggunakan komposer.json dan komposer.lock fail, 2.

Komposer adalah alat pengurusan ketergantungan untuk PHP, yang digunakan untuk mengisytiharkan, memuat turun dan mengurus kebergantungan projek. 1) Mengisytiharkan kebergantungan melalui fail composer.json, 2) Pasang kebergantungan menggunakan perintah komposerinstall, 3) menghuraikan pokok pergantungan dan memuat turunnya dari pembungkus, 4) menghasilkan fail autoload.php untuk memudahkan pemuatan automatik, 5) Mengoptimumkan penggunaan termasuk menggunakan composerupdate-prefer-dist dan penyesuaian autoload.

AppComposer adalah alat untuk membina dan menguruskan aplikasi. 1) Ia memudahkan pembangunan aplikasi dan meningkatkan kecekapan dengan menyeret dan mengkonfigurasi komponen yang telah ditetapkan. 2) Pemaju boleh menentukan komponen, menggabungkan antara muka, menentukan logik perniagaan, dan akhirnya menjadikan permohonan itu. 3) Menyokong penggunaan asas dan maju, seperti pengurusan tugas dan rendering bersyarat, membantu membina aplikasi yang fleksibel.


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

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)