>백엔드 개발 >PHP 튜토리얼 >작곡가로 휠을 만드는 방법

작곡가로 휠을 만드는 방법

一个新手
一个新手원래의
2017-09-07 10:06:291867검색

composer는 PHP용 종속성 관리 도구입니다. 이 문서에서는 다른 사람들이 Composer를 통해 패키지를 쉽게 사용할 수 있도록 패키지를 빌드하고 Packagist에 제출하는 방법을 설명합니다. S 다음 단계를 개발합니다.

    작곡가.json 파일 초기화
  1. 명명 공간 정의 및 패키지 이름 기능
  2. Packagist에 패키지 등록

  3. composer.json 초기화 file

    작곡기를 설치한 후 로컬에서 composer init를 실행하고 대화형 명령줄을 통해 작곡가.json을 설정할 수 있습니다.
  4. 다음은 일반 설정뿐만 아니라 여러 가지 속성을 소개합니다.

    name
이 속성은 /로 구분된 패키지 이름을 정의하며, 첫 번째는 공급자 이름, 마지막은 패키지 이름입니다. 공급자는 패키지를 구성하고 이름 충돌을 방지하기 위해 웹 사이트에서 개발자에게 제공하는 Packagist 고유 이름을 나타냅니다. 따라서 제출 시 https://packagist.org/packages/yourvendorname을 방문하여 URL의 yourvendorname을 원하는 이름으로 바꾸는 것이 가장 좋습니다. 페이지에 404가 없으면 등록된 것입니다.

license

composer init 通过交互式命令行设置 composer.json 。

下面介绍其中的几个属性,以及常规的设置:

name

此属性定义包名,以 / 隔开,前面的为供应商名字,后面为包名,供应商代表 Packagist 网站为开发者提供的唯一的名字,用来组织包以及防止命名冲突。所以提交时最好先访问 https://packagist.org/packages/yourvendorname 将 url 中的 yourvendorname 替换为你想要取的名字,如果页面没有 404 ,说明已经被注册了。

license

许可证。关于许可证,建议看两篇文章,开源项目 license 介绍 、 如何选择 license

require

安装当前包所需的依赖。只有所有依赖被安装当前包才会被安装。

autoload

此配置下主要是 PSR-4 或者 PSR-0 设置,更推荐使用 PSR-4 标准。

http://json-schema.org/ 上介绍了 JSON Schema 的定义以及各个语言对其各种功能的实现,有 validator 的实现,其中 JSON Schema Validator 是在线的验证服务。其实最简单的就是使用 composer validate composer.json 来验证文件是否是有错误。

项目结构

项目结构是典型的 MVC 结构,

.
└── geo
    └── geosso
        ├── LICENSE
        ├── README.md
        ├── composer.json
        └── src
            ├── Contracts
            ├── Http
            │   ├── Controllers
            │   ├── Middleware
            │   └── Requests
            ├── ParamsBean
            ├── Providers
            ├── Support
            └── config12 directories

LICENSE、README.md 及 composer.json 是运行 tree -d 之后手工添加上去的。

项目根目录定义在 src 下,在 composer.json 中也有定义,这样当 composer 加载这个包时就知道如何通过命名空间去解析文件路径。

Http 目录代表请求响应,之下的 Controllers 表示合法请求的控制器,Middleware 代表请求的第一道关卡,通过中间件去拦截请求,Requests 去获取前端请求并对请求过滤。

Contracts 代表接口定义。ParamsBean 代表应用层与底层服务沟通时的参数封装,通过 Bean 去获取各个参数,而不是传递 array 使得调用一致,并且强制接口调用时做类型检测,可以很大程度上统一各层之间的参数传递。

Providers 代表 Laravel 的服务容器,通过服务容器,可以注册路由与配置,加载助手类,绑定接口与其实现。

Support 就是一些助手类,对常用的与逻辑无关的功能的封装,config 代表应用自己的配置,通过 config 可以方便地将配置设置并使用全局函数 config()라이센스. 라이선스에 관해서는 오픈소스 프로젝트 라이선스 소개와 라이선스 선택 방법

require

현재 패키지를 설치하는 데 필요한 종속성이라는 두 가지 기사를 읽어보는 것이 좋습니다. 현재 패키지는 모든 종속성이 설치된 경우에만 설치됩니다.

autoload

이 구성은 주로 PSR-4 또는 PSR-0 설정을 사용하며 PSR-4 표준을 사용하는 것이 더 좋습니다.

http://json-schema.org/에서는 JSON Schema의 정의와 Validator의 구현을 포함하여 다양한 언어로 다양한 기능을 구현하는 방법을 소개하고 있으며, 그중 JSON Schema Validator는 온라인 검증 서비스입니다. 실제로 가장 간단한 방법은 composervalidatecomposer.json을 사용하여 파일에 오류가 있는지 확인하는 것입니다.

프로젝트 구조🎜🎜프로젝트 구조는 일반적인 MVC 구조입니다. 🎜
git init # 初始化仓库git remote set-url origin --push --add git@github.com:jayxhj/geosso.git # 添加远程追踪仓库地址git add .
git commit
git push origin master
🎜LICENSE, README.md 및 Composer.json은 tree -d를 실행한 후 수동으로 추가됩니다. 🎜🎜프로젝트 루트 디렉터리는 src 아래에 정의되고 작곡가.json에도 정의되어 있으므로 작곡가가 이 패키지를 로드할 때 네임스페이스를 통해 파일 경로를 확인하는 방법을 알 수 있습니다. 🎜🎜Http 디렉터리는 요청 응답을 나타내고, 아래 컨트롤러는 법적 요청의 컨트롤러를 나타내며, 미들웨어는 요청의 첫 번째 수준을 나타내며, 미들웨어를 통해 요청을 가로채고, 요청은 프런트 엔드 요청을 얻고 요청을 필터링합니다. 🎜🎜계약은 인터페이스 정의를 나타냅니다. ParamsBean은 애플리케이션 계층이 기본 서비스와 통신할 때 매개변수 캡슐화를 나타냅니다. 이는 호출을 일관되게 만들기 위해 배열을 전달하는 대신 Bean을 사용하여 매개변수를 크게 통합할 수 있습니다. 레이어 간 전송. 🎜🎜Providers는 Laravel의 서비스 컨테이너를 나타냅니다. 서비스 컨테이너를 통해 경로 및 구성을 등록하고 도우미 클래스를 로드하며 인터페이스와 구현을 바인딩할 수 있습니다. 🎜🎜Support는 로직과 관련이 없는 일반적으로 사용되는 기능을 캡슐화하는 일부 도우미 클래스입니다. config는 애플리케이션의 자체 구성을 나타내며 전역 함수 config()를 사용하여 구성을 쉽게 설정하고 호출할 수 있습니다. 코드>. 🎜🎜Submit to GitHub🎜🎜이전 단계에 따르면 패키지에는 기본 뼈대가 있습니다. 다음 단계는 이를 GitHub에 업로드하고, 프로젝트를 구성하고, 지속적 통합 서비스를 통합하고, 오픈 소스 프로젝트 라이선스를 발급하는 것입니다. 🎜🎜GitHub이 프로젝트를 초기화할 때 .gitignore 파일 생성, 라이선스 선택, README.md 파일 초기화, 로컬 프로젝트 디렉터리로 전환하고 아래 단계에 따라 해당 디렉터리를 GitHub에 업로드하도록 선택할 수 있습니다. 🎜rrreee 🎜Submit to Packagist🎜🎜 Packagist는 작곡가가 패키지 메타데이터 정보를 얻기 위한 기본 주소입니다. Packagist에서 메타데이터 정보를 얻은 후 코드는 GitHub에서 가져옵니다. 따라서 개발한 패키지를 GitHub에 업로드한 후, 전 세계 사람들이 Composer를 통해 코드를 가져올 수 있도록 Packagist에 등록해야 합니다. 🎜🎜

위 내용은 작곡가로 휠을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.