**최신 안정 릴리스: [버전 3.1.0, 2017년 7월 6일 릴리스].
버전 2의 최신 안정 버전은 v2 브랜치에서 찾을 수 있습니다.
qcubed.slack.com에서 Slack에 참여하세요. 여기에서 초대장을 받으세요 .
QCubed('Q' - 큐브로 발음)는 PHP5(5.4 이상) 및 PHP7을 지원하는 PHP 모델-뷰-컨트롤러 신속한 애플리케이션 개발 프레임워크입니다. 프레임워크의 목표는 평범하고 반복적인 작업에 대한 개발 시간을 절약하여 유용하고 재미있는 일에 집중할 수 있도록 하는 것입니다. QCubed는 사용자에게 신속하게 제공하려는 대규모 데이터베이스 구조가 있는 상황에서 탁월한 성능을 발휘합니다.
QCubed를 사용하면 브라우저에서 오는 POST 및 GET을 처리할 필요가 없습니다. QCubed는 이를 자동으로 처리하고 정보를 객체 지향 양식 및 컨트롤로 패키지합니다. QCubed를 사용한 프로그래밍은 데스크톱 응용 프로그램 프로그래밍과 매우 유사합니다. ASP에 익숙하다면 비슷합니다.
코드 생성기는 데이터베이스 스키마를 기반으로 일치하는 양식과 컨트롤을 사용하여 객체 클래스를 자동으로 생성합니다. ORM(객체 관계형 매핑) 개념을 사용하여 실제로 전체 모델 레이어를 생성합니다.
Codegen은 외래 키 관계 및 필드 제약 조건을 활용하여 검증 루틴 및 강력한 CRUD 방법을 갖춘 즉시 사용 가능한 데이터 모델을 생성할 수 있으므로 지속적으로 SQL 쿼리를 실행하는 대신 객체를 조작할 수 있습니다.
더 많은 정보와 예시는 https://qcubed.eu/에서 온라인으로 확인하실 수 있습니다.
QQueries를 사용하면 간단하면서도 강력한 모델 로드가 가능하며, 생성된 모든 ORM 클래스에는 쿼리 메서드와 QQNodes가 있습니다. 이러한 방법을 사용하면 복잡한 데이터 하위 집합을 얻는 것이 매우 간단하며 거의 모든 관계형 데이터베이스에서 사용할 수 있습니다.
QCubed는 QForm 개념을 사용하여 POST 트랜잭션 간에 양식 상태를 유지합니다. QForm은 컨트롤러 역할을 하며 UI 구성 요소인 QControl을 포함할 수 있습니다.
모든 QControl(QForm 자체 포함)은 뷰 레이어인 템플릿을 사용하여 MVC 구조를 완성할 수 있습니다.
QControl은 QForm의 FormState를 활용하여 동기식 서버 POST만큼 쉽게 Ajax 콜백을 통해 스스로 업데이트할 수 있습니다. 모든 jQuery UI 핵심 위젯은 QControl로 제공됩니다.
일부 QControl에는 다음이 포함됩니다.
QCubed를 배우는 가장 쉬운 방법은 http://qcu.be/examples/에서 예제 튜토리얼을 보는 것입니다.
QCubed는 플러그인 시스템을 통해 핵심 코드베이스에 대한 개선 사항과 추가 사항을 쉽게 패키징하고 제공할 수 있도록 해줍니다. 현재 활성화된 QCubed 버전의 플러그인은 플러그인 으로 시작하는 저장소에 있습니다.
설치 절차는 설치 지침에 자세히 설명되어 있습니다.
3.0은 2.x의 주요 아키텍처 변경이었습니다. 기본적으로 새 프로젝트를 만들고, 모델을 생성하고, ModelConnectorEditor를 사용하여 커넥터(MetaControls라고 불림)에서 생성된 내용을 구체화한 다음, 이전 버전에서 새 버전으로 코드를 복사하여 다시 시작해야 합니다. 수동으로 수행해야 했던 많은 작업이 이제 생성된 코드에서 수행되므로 생각만큼 오래 걸리지 않을 수도 있습니다. 뛰어보자 :-)
v3.1 이제 모델에서 변경 내용을 추적할 수 있습니다. 개체를 저장할 때마다 전체 개체를 데이터베이스에 푸시하는 대신 변경된 데이터만 푸시합니다. 이를 위해 생성된 모델 슈퍼클래스의 멤버 변수를 보호 대신 비공개로 설정합니다. 이를 위해서는 모델 하위 클래스의 코드를 변경해야 할 수도 있습니다. 전환을 돕기 위해 새로운 개인 변수 기능은 기본적으로 꺼져 있습니다. codegen_settings.xml 파일을 편집하고 createOptions 태그에 'privateColumnVars="true"' 매개변수를 추가하여 이 기능을 켜야 합니다. 예제는 qcubed/install/project/configuration 디렉터리에 있는 codegen_settings.xml 파일을 참조하세요.
이렇게 하면 Gen 클래스에 있는 모든 보호된 열 변수가 비공개가 되므로 Model 하위 클래스에서 해당 변수에 직접 액세스할 수 없습니다. 예를 들어, 테이블에 "이름" 열이 있는 경우 다음을 수행할 수 있습니다.
$ strName = $ this -> Name ;
아니면 더 나은 방법은 다음과 같습니다.
$ strName = $ this -> getName ();
하지만 그렇지 않습니다:
$ strName = $ this -> strName ;
$this->Name
$this->getName()
으로 라우팅됩니다.
또한 이 대신:
$ this -> strName = $ strName ;
하다:
$ this -> setName ( $ strName );
또는
$ this -> Name = $ strName ;
새로운 기능의 이점에는 성능 향상, OptimisticLocking 예외 감소, QSelect 절로 인해 로드되지 않은 값에 실수로 액세스하는 것을 방지하는 것이 포함됩니다. 또한 이제 QSelect를 사용하여 개체를 JSON과 같은 다른 형식으로 변환할 때 생성되는 내용을 제어할 수 있습니다.
v4.0은 PSR-1, PSR-2 및 PSR-4 표준을 지원하도록 설계된 또 다른 주요 아키텍처 변경 사항입니다. v4는 모든 코어 및 라이브러리 파일에 네임스페이스를 추가합니다. 모든 핵심 클래스 앞에 문자 'Q'가 사라졌습니다. 왜냐하면 이는 본질적으로 PHP에서 네임스페이스를 사용할 수 있기 전에 네임스페이스를 수행하는 방식이었기 때문입니다.
여기에는 코드를 v3.x 코드에서 v4.0으로 자동 변경하는 데 도움이 되는 도구가 포함되어 있습니다. 자세한 내용은 qcubed/application 저장소의 Readme 파일을 참조하세요.
최신 변경 사항 목록은 https://github.com/qcubed/qcubed/commits/master에서 확인할 수 있습니다.
QCubed는 Michael Ho의 프로젝트인 QCodo에서 파생되었습니다. QCubed는 JQuery에 의존하며 일부 핵심 컨트롤에 jQuery UI 라이브러리를 사용합니다.