찾다
개발 도구composerComposer 시리즈의 자동 로드에 대한 자세한 설명

下面由composer使用教程栏目为大家讲解Composer系列之autoload文件,希望对需要的朋友有所帮助!

Composer 시리즈의 자동 로드에 대한 자세한 설명

简介

Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

对于类库的自动加载,Composer 生成了一个 vendor/autoload.php 文件。引入这个文件,就能得到一个免费的自动加载支持,这种感觉真是棒极了~

本文主要是介绍如何利用 Composer 自带的自动加载机制,加载本地自定义的包(即不是来自于 packagist)。

使用

在 composer.json 文件中的 autoload 字段中添加自己的 autoloader。

目前 Composer 支持四种自动加载映射的方式:

PSR-0 autoloading
PSR-4 autoloading
classmap generation
files

下面只介绍 PSR-4,为什么?因为它足够方便好用(当你添加类时不需要重新生成 autoloader)。详细请查看 自动加载 - 参考

PSR-4(推荐)

{
    "autoload": {
        "psr-4": {
            "First\\": "src/",
            "Temp\\": "lib/"
        }
    }
}

上面的代码采用 PSR-4 规范,该规范包含了 PHP 最新的自动加载标准,它要求必须使用 namespace (命名空间)的方式。

First\\ 表示命名空间,必须以 \\ 结尾,避免相似的命名空间导致冲突,若包含子命名空间,可以这样表示:First\\Second\\。

src/ 表示命名空间所在目录为与 Composer 的 vendor 目录同级的 src 目录,如下所示:

First/
|---examples/
    |---get.php
|---src/
    |---Curl.php
|---vendor/
    |---composer/
    |---autoload.php
|---composer.json

如果需要在多个目录下搜索相同的命名前缀,可以用一个数组提供:

{
    "autoload": {
        "psr-4": {"First\\": ["src/", "lib/"]}
    }
}

修改完 composer.json 的 autoload 字段后需要更新一下 Composer 的自动加载类:

composer dumpautoload -o

对应 Curl.php 的命名空间如下表示:

<?php
namespace First;
class Curl
{
}

引用 Curl.php 的方式如下:

<?php
require &#39;../vendor/autoload.php&#39;;
use First\Curl;
$curl = new Curl();
...
...

小结

之前一直以为 namespace 是 PHP 内置好的,只需要在某个类上声明一下某个命名空间,在调用这个类的地方 use 一下就好。。。

直到前几天脱离框架,单独写了几个类,然后被 xxx class not found 错误折磨到怀疑人生,才明白需要有个 autoloader 才行。

题外话

现在 Composer 已经成为 PHP 的依赖管理标杆,多利用这个工具为自己的开发带来方便。

框架能大大减少开发成本,但有时候不利于个人技术的提升。在使用热门框架时,多看看框架的代码,不仅帮助自己理解掌握框架,也能带来许多编程思想和技术上的提高。

위 내용은 Composer 시리즈의 자동 로드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 learnku에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
작곡가의 목적 : PHP의 프로젝트 종속성 관리작곡가의 목적 : PHP의 프로젝트 종속성 관리Apr 30, 2025 am 12:01 AM

작곡가는 PHP 프로젝트의 종속성을 효과적으로 관리하고 버전 충돌 및 수동 라이브러리 관리의 번거 로움을 피할 수 있으므로 작곡가가 필요합니다. Composer는 Composer.json을 통해 종속성을 선언하고 Composer.Lock을 사용하여 버전 일관성을 보장하고 종속성 관리 프로세스를 단순화하며 프로젝트 안정성 및 개발 효율성을 향상시킵니다.

작곡가 : AI를 통한 PHP 개발 지원작곡가 : AI를 통한 PHP 개발 지원Apr 29, 2025 am 12:27 AM

AI는 작곡가 사용을 최적화하는 데 도움이 될 수 있습니다. 특정 방법에는 다음이 포함됩니다. 1. 종속성 관리 최적화 : AI는 종속성을 분석하고 최상의 버전 조합을 권장하며 충돌을 줄입니다. 2. 자동화 된 코드 생성 : AI는 모범 사례를 준수하는 composer.json 파일을 생성합니다. 3. 코드 품질 향상 : AI는 잠재적 인 문제를 감지하고 최적화 제안을 제공하며 코드 품질을 향상시킵니다. 이러한 방법은 기계 학습 및 자연어 처리 기술을 통해 구현되어 개발자가 효율성과 코드 품질을 향상시킬 수 있도록 도와줍니다.

작곡가가되기 : 교육, 교육 및 경험작곡가가되기 : 교육, 교육 및 경험Apr 28, 2025 am 12:11 AM

작곡가가 되려면 음악 이론, 조화, 반대 포인트를 마스터해야하며 악기의 톤과 공연 기술에 익숙해야합니다. 작곡가는 음악을 통해 감정과 이야기를 표현하며 창의적인 과정에는 아이디어의 구성과 개선이 작동합니다.

작곡가 식별 : 필수 요소작곡가 식별 : 필수 요소Apr 27, 2025 am 12:27 AM

작곡가를 식별하는 주요 단계는 다음과 같습니다. 1) 베토벤의 드라마 및 힘과 같은 작곡가의 문체 특성 분석; 2) 바흐의 바로크 스타일과 같은 작곡가의 역사적 배경과 문화적 영향을 이해; 3) 단일 요소에만 의존하여 오해를 피하기 위해 작업의 멜로디, 조화, 리듬 및 구조를 종합적으로 분석합니다.

작곡가 : PHP 개발에서 AI의 미래작곡가 : PHP 개발에서 AI의 미래Apr 26, 2025 am 12:10 AM

Composer'SfutureInphpdevelopment와 함께 제공됩니다.

작곡가의 기술과 자질 : 개요작곡가의 기술과 자질 : 개요Apr 25, 2025 am 12:03 AM

성공적인 작곡가가 되려면 음악 이론, 악기 공연 및 사운드 디자인과 같은 기술뿐만 아니라 캡처 및 지속적인 작업 수정에 대한 열렬한 영감이 필요합니다. 작곡가들은 이러한 기술과 특성을 사용하여 감정과 생각을 음악 작품으로 변화시켜 청취자와 공명합니다.

작곡가의 자격 : 숙련도 평가작곡가의 자격 : 숙련도 평가Apr 24, 2025 am 12:15 AM

작곡가 숙련도는 다음 4 가지 측면에서 평가 될 수 있습니다. 1) 패키지, 종속성 및 버전 제어와 같은 기본 개념을 이해합니다. 2) Parsing Composer.json, 종속성 해결, 패키지 다운로드 및 자동로드 파일 생성을 포함한 마스터 코어 기능; 3) ComposerInstall, 업데이트, 요구 및 덤프 아우토로드와 같은 기본 및 고급 명령을 사용하는 데 능숙합니다. 4) Composer.Lock 파일 사용, 자동로드 구성 최적화 및 정기적으로 캐시를 정기적으로 청소하는 등 모범 사례를 적용하십시오.

작곡가 : 자동화 된 작업을 위해 AI를 활용합니다작곡가 : 자동화 된 작업을 위해 AI를 활용합니다Apr 23, 2025 am 12:03 AM

작곡가를 사용하여 AI를 결합하여 자동화 된 작업을 달성하십시오. 1. Composer는 구성 파일을 통해 종속성을 관리하고 AI는 버전 선택을 최적화 할 수 있습니다. 2. 실제 응용 분야에서 AI는 종속성 관리, 테스트 및 배포를 자동화하는 데 사용할 수 있습니다. 3. 성능 최적화에는 의존성 로딩 및 캐싱 전략이 포함됩니다. 4. 버전 충돌 및 AI 잘못 판단과 같은 문제에주의하십시오. 이러한 방법을 통해 AI는 업무 효율성과 지능을 향상시킬 수 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기