버전 2.0.2- 2024-12-13
MVC (Model-View-Controller) 아키텍처 패턴을 구현하는 간단한 웹 응용 프로그램 프레임 워크.
composer require "simplesamlphp/simplesamlphp:^2.2" 필요합니다.UMVC는 모듈을 지원하고 구성/구성 요소를 참조하십시오.
프레임 워크는 프레임 워크 플러그인으로 기능 테스트를 지원합니다. 전 세계적으로 설치된 CodeCeception은 필수와 호환되어야합니다 (현재 v3.1.2)
UMVC는 CLI를 지원합니다. 나만의 명령을 만들 수 있습니다. 내장 명령은 다음과 같습니다.
명령을 php app $command $action $parameters
프레임 워크는 작곡가와 함께 프로젝트에 포함시킬 수 있습니다. run composer require uhi67/umvc:dev-master . composer create-project --prefer-dist uhi67/umvc-app name 사용하여 새롭고 빈 프로젝트를 만들 수 있습니다. 이렇게하면 UMVC 프레임 워크를 사용하여 새로운 빈 응용 프로그램이 이름 지정된 디렉토리에 제공됩니다. 원하는 이름을 선택하십시오.
경고 :이 부분은 건설 중입니다. 클래스 정의의 문서 블록에서 언급 된 클래스에 대해 자세히 알아보십시오.
composer.json 작성하고 uh67/umvc , 예를 들어 composer init --name myname/myapp --require uhi67/umvc:* 포함하십시오.composer update 실행하십시오.vendor/uh67/umvc/app 응용 프로그램의 루트에 복사하십시오. 이것은 CLI 명령의 발사기입니다.vendor/uh67/umvc/www/index.php 복사하고 .htaccess 는 응용 프로그램의 www 디렉토리에 있습니다. 이것은 웹 인터페이스의 라우터입니다.config/config.php 파일에서 응용 프로그램의 구성을 만듭니다. vendor/uh67/umvc/config/config-template.php 의 템플릿을 참조하십시오.runtime 디렉토리를 작성하여 임시 파일을 배치하십시오.www/assets 디렉토리를 작성하여 다양한 구성 요소의 캐시 된 자산 파일을 배치하십시오. appcontrollers 네임 스페이스를 사용하여 controllers 에서 컨트롤러를 작성하고 uhi67umvcController 에서 파생하십시오.views dir에서 뷰를 간단한 phtml 형식으로 뷰를 만들고 views/controller/action.php 구조에 따라 구성하십시오.models 디렉토리에서 모델을 만듭니다. 데이터베이스 모델은 uhi67umvcModel 이고, 데이터베이스리스 모델은 uhi67umvcBaseModel 입니다. migrations 디렉토리로 배치하십시오.views/layouts 디렉토리에 레이아웃을 배치하십시오. 보기는 다른 부분보기를 호출 할 수 있습니다.uhi67umvcCommand 클래스에서 파생 된 commands 디렉토리에서 CLI 명령을 정의 할 수 있습니다. 프레임 워크에는 내장 명령이 있습니다. php app 명령에는 내장 및 사용자 정의 명령이 모두 나열되어 있습니다.messges/la.php 파일에 번역을 배치하십시오. 주요 앱 클래스 자체를 포함한 대부분의 UMVC 클래스 인 모든 구성 요소는 uhi67umvcComponent 입니다. Component 속성 기능을 구현합니다. Magic Getter 및 Setter는 GetProperty 및 SetProperty 메소드를 사용합니다. Component 구성 가능 : 생성자는 공개 속성에 대한 값을 포함하는 구성 배열을 수락합니다.
MySqlConnection 데이터베이스에 연결합니다. SQL 쿼리 빌더가 포함되어 있습니다. 현재 유일한 Connection 구현입니다.FileCache CacheInterface 의 유일한 구현.SamlAuth AuthManager 의 유일한 구현.L10n 간단한 현지화, 기본 자동으로 자동 포함 된 UMVC 메시지 만 번역합니다.L10nFile 애플리케이션의 메시지를 번역하기위한 파일 기반 현지화. Form -모델을 사용하여 HTML 양식을 표시하고 처리 할 수있는 내장보기가있는 위젯.Grid (위젯, 그러나 내장보기는 여전히 누락되었습니다)-페이지 진화하고 필터링 된 모델 목록을 표시합니다.Query - PHP 구조에서 매개 변수 및 유연한 SQL 쿼리를 나타냅니다. SQL 명령을 구축 할 수 있습니다.Request - HTTP 요청을 나타내고, 매개 변수를 가져 와서 게시하는 데 사용될 수 있습니다.Session - 현재 PHP 세션을 나타내며 변수를 얻고 설정하는 데 사용될 수 있습니다. 웹 응용 프로그램의 단일 항목 스크립트는 www/index.php 입니다. CLI 응용 프로그램의 단일 항목 스크립트는 각각 app 파일입니다. 둘 다 vendor/uhi67/umvc/ 디렉토리에서 응용 프로그램 디렉토리에 복사해야합니다.
www/.htaccess 규칙은 www/index.php 에 모든 창립 요청을 리디렉션합니다. 그러나 정적 자산은 www 디렉토리에서 직접 제공됩니다. 나중에 도서관 자산에 서비스를 제공하는 것에 대해 자세히 알아보십시오.
index.php 자동 로더를 초기화하고, 기본 구성을로드하고, 기본 객체 (구성에 정의 된 클래스, 일반적으로 uhi67/umvc/App 또는 자손)를 생성합니다. 기본 구성은 구성 가능한 Component 의 규칙을 따릅니다.
https : // myapp/acontroller/anaction으로 형성된 모든 URL은 다음과 같은 방법으로 처리됩니다.
uhi67/umvc/App 요청을 구문 분석하고, 사용할 실제 컨트롤러 클래스 ( uhi67/umvc/Controller 에서 파생)를 계산하고 컨트롤러를 생성하고 요청 된 조치 방법을 실행합니다. 위의 예에서와 같이 Acontroller는 controllers 디렉토리의 컨트롤러 클래스를 AconTrollerController 로 말하며 Action은 액션 방법 ( ACTIONACTION )을 나타냅니다.
작업 이름이 URL에서 누락되면 actionDefault 실행됩니다. 컨트롤러 이름도 누락되면 구성된 MainController가 사용됩니다. 컨트롤러 이름을 지정하지 않고 기본 컨트롤러의 동작 이름으로 URL을 만들 수도 있습니다.이 작업과 동일한 이름을 가진 컨트롤러를 가질 수없는 유일한 제한 사항입니다.
php app acontroller/anaction 으로 형성된 Al CLI 명령은 다음과 같은 방식으로 처리됩니다.
uhi67/umvc/App 요청을 구문 분석하고 사용하려면 실제 컨트롤러 클래스 ( uhi67/umvc/Command 에서 파생)를 계산하고 컨트롤러를 작성하고 요청 된 작업 방법을 실행합니다. 위의 예에서와 같이 AconTroller는 commands 디렉토리의 컨트롤러 클래스를 AconTrollerROntroller 로 말하며 ACTACTION은 액션 메소드 ( ACTIONACTION )를 나타냅니다. 내장 명령은 같은 방식으로 실행할 수 있습니다. 응용 프로그램에서 동일한 이름을 가진 명령은 내장 명령을 무시합니다.
현재 URL 요청의 일부는 다음과 같이 액세스 할 수 있습니다.
컨트롤러 및 작업 이름을 사용하여 새 URL을 생성하려면 다음 중 하나를 사용하십시오.
View 파일에서 www 디렉토리 아래에 위치한 정적 자산 (예 : <link href="/assets/css/app.css" rel="stylesheet"> 참조 할 수 있습니다. 반대로, Composer-Created 공급 업체 라이브러리 어딘가에있는 자산 파일을 참조하려면 다음과 같은 방식으로 사용할 수 있습니다.
<script src="<?= $this->linkAssetFile('npm-asset/bootstrap/dist', 'js/bootstrap.bundle.min.js') ?>"></script> linkAssetFile 함수는 첫 번째 인수의 디렉토리에서 모든 파일을 www 아래의 자산 캐시 디렉토리로 복사하고 두 번째 인수 파일에 유효한 URL을 생성합니다. 참고 : 첫 번째 인수는 자산 패키지를 식별합니다. 패키지에 대한 첫 번째 호출 만 파일을 복사합니다. 동일한 패키지에 대한 모든 후속 호출은 파일의 링크 만 생성합니다.
자산 캐시는 composer install 명령에 의해 비워집니다. 자산 캐시는 항상 www/asset/cache 이며 구성 가능하지 않습니다.
...
이 리포지토리에는 내부 코딩 단위 테스트를위한 내장 테스트 응용 프로그램이 포함되어 있습니다. tests 디렉토리에서 테스트 앱의 유일한 목적은 샘플 응용 프로그램이 아닌 단위 테스트를 실행할 수있는 것입니다.
git clonecomposer updatetests/_data/test-config.php 만듭니다tests/_data/test-config.php 에서 데이터베이스 설정에 따라 umvc-test 데이터베이스 작성php vendor/bin/codecept run unit 실행하십시오더 많은 단위 테스트가오고 있습니다 ...
내장 Dockerized 테스트 환경을 사용하여 다른 PHP 및 데이터베이스 버전으로 테스트 할 수 있습니다.
단계 :
tests/docker-compose.yml 에서 필요한 데이터베이스 버전을 구성하십시오 (이 템플릿 파일의 클론 제작)tests/docker/Dockerfile 에서 PHP 버전 구성 (확장 설치 단계가 변경 될 수 있음)tests/.env 에서 사용 된 포트 및베이스 러를 구성하십시오docker compose up --build -d ( tests dir)를 사용하여 스택 구축docker exec -it umvc-php-1 php vendor/bin/codecept run unit 로 단위 테스트 실행