jonathanbak / psf
php simple framework
Requires
- php: >=8.1
- ext-mysqli: *
- jonathanbak/mysqlilib: ^1.4
Requires (Dev)
- phpunit/phpunit: ^10.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
What is PSF?
PSF는 PHP Simple Framework 로 간단한 파일(configure.json) 설정 만으로 다중 사이트를 운영할수 있게 도와주는 프레임워크 입니다.
1.x → 2.0 업그레이드 (PHP 8.1 이상) PSF 버전이나 PHP 버전을 올리기 전에 UPGRADE-2.0.md 를 먼저 확인하세요. 프로젝트에 설치된 경우 경로는
vendor/jonathanbak/psf/UPGRADE-2.0.md입니다. AI 코딩 도구로 마이그레이션할 때도 이 문서를 먼저 읽도록 지시하세요.
Features
PSF supports the following:
- configure.json 설정만으로 여러 사이트를 한 코드베이스에서 운영
- URL 경로와 컨트롤러 클래스를 자동으로 연결하는 라우팅
- mysqlilib 기반 모델
Requirements
| PSF | PHP | mysqlilib | 상태 |
|---|---|---|---|
| 2.x | 8.1 이상 | ^1.4 | 현재 버전 |
| 1.x | 5.3 이상 (8.0 이하 권장) | ~1.2 (lock 에 따라 1.2 ~ 1.4) | 버그 수정만 |
- Composer - Dependency Management for PHP
- PHP
mysqli확장, mysqlnd 드라이버 (2.x)
1.x 에서 올리는 경우 UPGRADE-2.0.md 를 먼저 확인하세요. 버전별 변경 사항은 CHANGELOG.md 에 있습니다.
Note: php composer 를 설치하고 PSF를 추가하면 자동으로 의존성 라이브러리들을 설치합니다.
Installation
-
Download and install Composer by following the official instructions.
-
Create a composer.json defining your dependencies. Note that this example is a short version for applications that are not meant to be published as packages themselves. To create libraries/packages please read the documentation.
{ "require": { "jonathanbak/psf":"^2.0" } }PHP 8.1 미만 프로젝트는
"~1.1"을 사용합니다. -
Run Composer:
php composer.phar install
Start First Project
터미널에서 아래 스크립트를 실행후 데이터를 입력하시면 자동으로 폴더가 구성됩니다.
$ php ./vendor/jonathanbak/psf/bin/init.php Create database configuration file [N/y]?y Input db file name (domain name) : sample.com Input db host : 127.0.0.1 Input db user : test Input db password : testpassword Input database name : db_test Input db alias name : dbalias Create new db.. .../config/db/sec.wendybook.loc.json Create site configuration file [N/y]?y Input site namespace : SampleSite Input site domain : www.sample.com Input db file name : sample.com Create new site.. OK.
Folder Structure
PSF 사용시 추천하는 폴더 구조는 아래와 같습니다.
.
├── app
│ └── com.example # example.com 사이트 루트 폴더
│ ├── _tmp # 임시폴더, 캐쉬파일과 로그 생성
│ ├── controllers # URL에서 접근하는 controller 파일
│ ├── models # 모델 파일, 주요 로직
│ └── views # View 폴더
│ ├── css # css 파일
│ ├── image # images 파일
│ ├── js # javascript 파일
│ └── tpl # tpl 파일 (html 파일)
├── config # 설정 파일
│ ├── db # DB 정보 설정 파일
│ └── site # 사이트 설정 파일
├── html # 실제 웹서버의 DOCUMENT_ROOT
└── vendor # Composer 라이브러리 폴더
app 폴더 하위 구조는 config/site/usersiteurl.json 파일안에서 별도 정의가 가능합니다.
app 폴더 상위 구조는 configure.json 파일 에서 별도 정의가 가능합니다.