Symlex는 예를 들어 모범 사례를 홍보하는 작업 시스템을 제공하여 Agile Web Development를 단순화하는 것을 목표로합니다.
2014 년 최초 출시 이후, 이는 마이크로 서비스, CLI 및 단일 페이지 응용 프로그램에 빠르게 구축하는 데 적합한 것으로 입증되었습니다. 테스트에서 양식 및 데이터베이스 추상화에 이르기까지 작업 예제가 완료됩니다. 필요하지 않은 것을 삭제하십시오.
커널은 작고 컨텍스트 내에서 애플리케이션을 부트 스트랩하는 서비스 컨테이너 만 생성합니다. 구성 및 종속성 주입을 위해 단일 컨테이너를 사용하면 복잡성이 줄어들고 다른 프레임 워크에 비해 성능이 향상됩니다. 또한 개발자가 번들을 이해하지 않고 무의식적으로 설치하는 것을 방지합니다. 그 결과 민첩한 개발에 기본적인 팽창이없고 간단하고 유지 관리 가능하며 테스트 가능한 코드가 있습니다.
공급 업체 잠금을 피하고 프레임 워크 독립 코드 재사용을 활성화하기 위해 가능한 한 일반 클래스가 사용됩니다. TradeOffs.md를 참조하십시오.
PHP 기반 백엔드를 JavaScript 라이브러리 또는 REST 클라이언트와 결합 할 수 있습니다. 프론트 엔드 보일러 플레이트는 편의를 위해 제공되며 Webpack 및 Vuetify를 사용하여 인상적인 단일 페이지 응용 프로그램을 구축 할 수 있도록 직접 트랙을 제공합니다. Demo.symlex.org를 참조하십시오. 명령 줄 애플리케이션에 대한 작업 예도 포함되어 있습니다.
우리의 전체 프레임 워크 문서는 docs.symlex.org에서 찾을 수 있습니다. Tuzi Liu는 우리를 위해 중국어 번역을 유지합니다.
참고 : https://github.com/symlex/symlex-core에는 재사용 가능한 구성 요소로 커널과 라우터가 포함되어 있습니다.
시작하기 전에 PHP 7.3+, 작곡가 및 Docker가 시스템에 설치되어 있는지 확인하십시오 (Mac OS X 용 Howto). get-composer.sh 실행하여 Linux에 로컬로 composer 설치하십시오. Docker를 사용하는 대신 기존 Dockerfile을 기반으로 고유 한 런타임 환경을 설정할 수 있습니다. 또한 프론트 엔드를 구축하려면 데이터베이스 + nodejs 및 npm이 필요합니다.
1 단계 : composer 실행하여 새로운 Symlex 프로젝트를 만듭니다.
composer create-project symlex/symlex myapp
Composer는 구성 값을 요청하여 app/config/parameters.yml 생성하기위한 구성 값을 요청합니다.
앱에서 캐시 파일을 생성 할 수 있도록 storage/cache 작성 될 수 있는지 확인하십시오.
2 단계 : docker-compose 사용하여 Roadrunner 및 Mariadb를 시작하십시오.
cd myapp
docker-compose up
참고 :이 구성은 테스트 및 개발 목적으로 만 사용됩니다 (자세한 내용은 Docker-Compose.yml의 주석을 참조하십시오. 보안상의 이유로 다른 사용자로 Docker를 실행하면 조정해야 할 수도 있습니다. OS X에서 Docker의 현재 릴리스는 호스트 파일 시스템에서 PHP를 실행하는 데 실제로 느립니다. docker-compose up -d 백그라운드에서 Docker를 실행하지만이 경우 유용한 로그 메시지가 표시되지 않습니다.
3 단계 : 데이터베이스를 초기화하고 프론트 엔드 구성 요소를 작성하십시오.
make terminal
make all database
모든 것이 작동하는지 확인하려면 make test 실행하십시오.
참고 :이 접근법을 사용하여 나중에 다른 CLI 명령을 실행할 수도 있습니다. 일반적인 UNIX 개발 환경에 사전 설치해야합니다. 그렇지 않으면 xcode-select --install 통해 OS X에 Xcode 명령 줄 도구를 설치하거나 Linux의 build-base 또는 build-essential 패키지를 추가하여 먼저 가져와야 할 수도 있습니다. Makefile 에는 모든 대상 목록이 포함되어 있습니다.
설치를 성공적으로 설치 한 후 http : // localhost : 8081/에서 사이트를 열고 passwd 사용하여 [email protected] 으로 로그인하십시오.
app/config 에 위치한 Yaml 파일은 매개 변수 및 서비스를 기반으로 앱을 구성합니다. 기본 구성 파일은 app/config/web.yml 및 app/config/console.yml 입니다.
localhost-debug /etc/hosts 에 추가하고 사이트에 액세스하면 디버그 모드로로드됩니다 (오류 페이지에 스택 추적 및 기타 디버그 정보가 표시됨).
Mailhog 사용자 인터페이스는 http : // localhost : 8025/에서 사용할 수 있습니다. 예를 들어 새 사용자가 생성 될 때 시스템에서 자동으로 전송 된 메일을 수신하고보기에 사용될 수 있습니다.
보다 가벼운 앱을 구축하려면 다른 예를 살펴보십시오.
전체 문서 : https://docs.symlex.org/en/latest/framework/
Symlex에는 이제 Nginx의 대안으로 고성능 PHP 응용 프로그램 서버 인 Roadrunner가 포함됩니다. Docker 이미지를 작성하면 자동으로 다운로드됩니다.
Symlex> = 4.4.0에 대한 설치 지침은 여전히 Nginx 및 PHP-FPM을 사용하므로 이전 릴리스에서는 작동하지 않습니다. web 및 php 대신 이제 RoadRunner가 구동하는 단일 app 서비스가 있습니다. Nginx를 선호하는 경우 이전 릴리스를 사용하거나 이전 구성을 새 릴리스에 복사 할 수 있습니다. 예제 앱 중 일부는 Nginx도 사용합니다.
Symlex는 Michael Mayer에 의해 유지되며 예를 들어 모범 사례를 홍보하는 작업 시스템을 제공하여 민첩한 웹 개발을 단순화하는 것을 목표로합니다. Michael은 2001 년에 첫 번째 PHP 프레임 워크를 발표했으며 과거에 다양한 주요 프레임 워크 공급 업체와 협력했습니다. 다른 개발자들의 사전 작업이 없으면 이것을 구축하는 것은 불가능했을 것입니다. 기여한 분들과 모든 분들께 감사드립니다!
선택은 생산성의 적입니다. 다른 방법으로, 솔루션이 모든 것을 수행하고 아무것도 의견이 없다면 아무것도 해결하지 못합니다. - Asim Aslam
궁금한 점이 있거나 상업적 지원이 필요하거나 인사하고 싶다면 이메일을 [email protected]로 보내 주시기 바랍니다. 우리는 모든 종류의 기여를 환영합니다. 버그 나 아이디어가있는 경우 문제를 열기 전에 가이드를 읽으십시오.
PHP 프레임 워크 성능은 주로 각 요청에 대해 실행 해야하는 코드 라인에 따라 다릅니다. Symlex는 단순하고 마른 상태로 설계되었지만 좋은 성능은이 접근법의 매우 중요한 부산물입니다.
최상의 코드는 코드가 아닙니다. 코드가없는 경우 버그가 없습니다. 배울 API가 없습니다. 어색한 ui. 최고의 리팩터는 삭제입니다. - 에릭 엘리엇
phpbenchmarks.com에서 게시 한 것처럼 REST 요청은 다른 일반적인 PHP 프레임 워크에 비해 40% 더 빠릅니다.
이러한 응답 시간은 5 개의 동시 요청만으로 빠른 서버 하드웨어에서 완전히 최적화 된 생산 모드에서 측정되었습니다. 실제로, 절대 시간 측면에서 차이가 훨씬 클 수 있습니다. 메모리 소비도 고려해야합니다.
왜 신경 쓰야합니까? 먼저, 사용자는 그것을 좋아할 것입니다. 경험상 100ms는 시스템이 즉시 반응하고 있다고 느끼게하는 한계에 관한 것입니다. 즉, 결과를 표시하는 것 외에는 특별한 피드백이 필요하지 않습니다. 총 응답 시간에는 네트워크 (~ 25ms), 브라우저 및 기타 오버 헤드도 포함되며 실제 비즈니스 로직을 구현하기 위해 100ms의 작은 부분 만 남습니다. 둘째, 서버 인프라에 많은 돈을 절약 할 수 있으며 테스트가 더 빨리 실행되면서 개발자가 더 생산적입니다.
Symlex 자체에는 올바른 방향으로 가리키는 "표준 판"이 없기 때문에 Symlex는 2014 년 간단한 Silex Boilerplate으로 시작되었습니다. Sensiolabs (두 프레임 워크의 제작자)는 Symfony 대신 Silex를 사용하여 Symfony + Fosrestbundle의 가벼운 대안으로 고성능 휴식 서비스 및 단일 페이지 웹 응용 프로그램을 신속하게 구축하기위한 권장했습니다.
Silex와 함께 제공되는 서비스 컨테이너 인 Pimple은 Symfony에서 온 개발자에게 번거로운 느낌이 들며 기존 코드를 재사용하기가 어렵다는 것을 곧 알게되었습니다. 또한 많은 SILEX 코드 예제 및 실제 응용 프로그램은 코드의 모든 부분 (프레임 워크 자체뿐만 아니라)에서 서비스 컨테이너에 액세스하여 제어의 역전을 피하고 어색한 테스트 가능성을 초래합니다. 따라서 Symlex는 의존성 주입의 엄격한 사용을 촉진하고 본격적인 서비스 컨테이너의 편의를 마이크로 프레임 워크의 속도와 결합합니다.
오늘날 Symlex는 자체 라우팅 구성 요소 (Symfony 4 기반)를 가지고 있으며 더 이상 Silex를 사용하지 않습니다. 이 프레임 워크는 다수의 다른 응용 프로그램에 유용한 것으로 입증되었습니다. 그들 중 일부는 이전의 일반 Symfony 커널을 기반으로했으며 복잡성이 익사하고 개발 모드에서 30 초 이상의 응답 시간으로 어려움을 겪었 기 때문에 변경을 수행했습니다. Symlex는 기존 코드 기반을 크게 변경하지 않고도 다시 추적했습니다.
Symlex는 자원 봉사자들이 전적으로 운영하는 비영리 프로젝트입니다. 특히 소프트웨어 사용에 도움이 필요한 경우 GitHub 스폰서를 통해 우리를 지원하는 것이 가장 좋습니다. 그들은 첫해에 모든 기부금과 일치합니다.
이 프로젝트가 마음에 들면 스타를 남겨주세요. 계속 진행할 수있는 추가 동기를 제공합니다. 매우 감사합니다! <3