composer는 PHP용 종속성 관리 도구입니다. 이 문서에서는 다른 사람들이 Composer를 통해 패키지를 쉽게 사용할 수 있도록 패키지를 빌드하고 Packagist에 제출하는 방법을 설명합니다. S 다음 단계를 개발합니다.
- 작곡가.json 파일 초기화
- 명명 공간 정의 및 패키지 이름 기능
- Packagist에 패키지 등록
- composer.json 초기화 file작곡기를 설치한 후 로컬에서
composer init
를 실행하고 대화형 명령줄을 통해 작곡가.json을 설정할 수 있습니다. - 다음은 일반 설정뿐만 아니라 여러 가지 속성을 소개합니다. name
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 directoriesLICENSE、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
을 사용하여 파일에 오류가 있는지 확인하는 것입니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

phpsession 실패 이유에는 구성 오류, 쿠키 문제 및 세션 만료가 포함됩니다. 1. 구성 오류 : 올바른 세션을 확인하고 설정합니다. 2. 쿠키 문제 : 쿠키가 올바르게 설정되어 있는지 확인하십시오. 3. 세션 만료 : 세션 시간을 연장하기 위해 세션을 조정합니다 .GC_MAXLIFETIME 값을 조정하십시오.

PHP에서 세션 문제를 디버그하는 방법 : 1. 세션이 올바르게 시작되었는지 확인하십시오. 2. 세션 ID의 전달을 확인하십시오. 3. 세션 데이터의 저장 및 읽기를 확인하십시오. 4. 서버 구성을 확인하십시오. 세션 ID 및 데이터를 출력, 세션 파일 컨텐츠보기 등을 통해 세션 관련 문제를 효과적으로 진단하고 해결할 수 있습니다.

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

SESSION.GC_MAXLIFETIME 및 SESSION.COOKIE_LIFETIME을 설정하여 PHP에서 세션 수명을 구성 할 수 있습니다. 1) SESSION.GC_MAXLIFETIME 서버 측 세션 데이터의 생존 시간을 제어합니다. 2) 세션 .Cookie_Lifetime 클라이언트 쿠키의 수명주기를 제어합니다. 0으로 설정하면 브라우저가 닫히면 쿠키가 만료됩니다.

데이터베이스 스토리지 세션 사용의 주요 장점에는 지속성, 확장 성 및 보안이 포함됩니다. 1. 지속성 : 서버가 다시 시작 되더라도 세션 데이터는 변경되지 않아도됩니다. 2. 확장 성 : 분산 시스템에 적용하여 세션 데이터가 여러 서버간에 동기화되도록합니다. 3. 보안 : 데이터베이스는 민감한 정보를 보호하기 위해 암호화 된 스토리지를 제공합니다.

SessionHandlerInterface 인터페이스를 구현하여 PHP에서 사용자 정의 세션 처리 구현을 수행 할 수 있습니다. 특정 단계에는 다음이 포함됩니다. 1) CustomsessionHandler와 같은 SessionHandlerInterface를 구현하는 클래스 만들기; 2) 인터페이스의 방법 (예 : Open, Close, Read, Write, Despare, GC)의 수명주기 및 세션 데이터의 저장 방법을 정의하기 위해 방법을 다시 작성합니다. 3) PHP 스크립트에 사용자 정의 세션 프로세서를 등록하고 세션을 시작하십시오. 이를 통해 MySQL 및 Redis와 같은 미디어에 데이터를 저장하여 성능, 보안 및 확장 성을 향상시킬 수 있습니다.

SessionId는 웹 애플리케이션에 사용되는 메커니즘으로 사용자 세션 상태를 추적합니다. 1. 사용자와 서버 간의 여러 상호 작용 중에 사용자의 신원 정보를 유지하는 데 사용되는 무작위로 생성 된 문자열입니다. 2. 서버는 쿠키 또는 URL 매개 변수를 통해 클라이언트로 생성하여 보낸다. 3. 생성은 일반적으로 임의의 알고리즘을 사용하여 독창성과 예측 불가능 성을 보장합니다. 4. 실제 개발에서 Redis와 같은 메모리 내 데이터베이스를 사용하여 세션 데이터를 저장하여 성능 및 보안을 향상시킬 수 있습니다.

JWT 또는 쿠키를 사용하여 API와 같은 무국적 환경에서 세션을 관리 할 수 있습니다. 1. JWT는 무국적자 및 확장 성에 적합하지만 빅 데이터와 관련하여 크기가 크다. 2. 쿠키는보다 전통적이고 구현하기 쉽지만 보안을 보장하기 위해주의해서 구성해야합니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

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

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구
