namespace형태에 따라서 폴더와 파일을 선택해서include_once명령으로 불러옵니다.- 기본적으로 PSR-4 규칙을 준수합니다.
- AWS EC2 Ubuntu 22.04
- Apache 2.4.52
- Nginx 1.18.0 (php8.1-fpm)
- MySQL 8.0.28
- PHP 8.1.2
php.ini- extension_dir : PHP 확장 라이브러리 경로
- extension=pdo_mysql : PDO 사용
- expose_php=Off : PHP 버전 정보 숨김
apache2.conf- ServerSignature Off : Apache 서버 정보 숨김
- ServerTokens Prod : Apache 서버 정보 숨김
.htaccess# 폴더 검색 금지 Options -Indexes # Apache 서버 정보 숨김 <IfModule mod_headers.c> Header unset Server </IfModule> # 에러 처리 <IfModule mod_alias.c> ErrorDocument 400 /html/4xx.html ErrorDocument 401 /html/4xx.html ErrorDocument 403 /html/4xx.html ErrorDocument 404 /html/4xx.html ErrorDocument 500 /html/5xx.html ErrorDocument 502 /html/5xx.html ErrorDocument 503 /html/5xx.html </IfModule> <IfModule mod_rewrite.c> RewriteEngine on # alias 설정 (/Variety/assets/js -> /js) RewriteCond %{REQUEST_URI} ^/(js|css|fonts|images)(/.*)?$ RewriteRule ^(js|css|fonts|images)/(.*)$ /Variety/assets/$1/$2 [L] # alias 설정 (/Variety/resources/libs/node_modules -> /modules) RewriteCond %{REQUEST_URI} ^/modules(/.*)?$ RewriteRule ^modules/(.*)$ /Variety/resources/libs/node_modules/$1 [L] # index.php 에서 모든 경로 처리 RewriteCond %{REQUEST_URI} !^/index\.php$ RewriteCond %{REQUEST_URI} !^/favicon\.ico$ RewriteCond %{REQUEST_URI} !^/Variety/assets/(js|css|fonts|images)(/.*)?$ [NC] RewriteCond %{REQUEST_URI} !^/Variety/resources/libs/node_modules(/.*)?$ [NC] RewriteRule ^.*$ /index.php [L,QSA] </IfModule>
nginx.conf- server_tokens off : Nginx 서버 정보 숨김
-
# 폴더 검색 금지 autoindex off; # index.php 에서 모든 경로 처리 location / { try_files $uri /index.php$is_args$args; } location ~ \.php$ { internal; # .php 확장자로 직접 실행 불가 include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # php-fpm 버전 확인 } # alias 설정 (/Variety/assets/js -> /js) location ~ ^/(js|css|fonts|images)(/.*)?$ { alias /Variety/assets/$1/$2; try_files $uri $uri/ =404; } # alias 설정 (/Variety/resources/libs/node_modules -> /modules) location ~ ^/modules(/.*)?$ { alias /Variety/resources/libs/node_modules/$1; try_files $uri $uri/ =404; }
- 모든 Controller 파일들은
Controller.php파일을 기본으로 상속 받아서 사용 - 모든 Model 파일들은
Model.php파일을 기본으로 상속 받아서 사용 Controller,Model,Variety외에는 루트 폴더에 다른 경로를 만들지 않음.ini파일에 기본 설정 변수값을 지정해서 사용Router.php파일에 URL 경로와 클래스, 함수를 연결해서 사용- 연결하는 함수가 없는 경우 URL 가장 마지막 값을 함수로 사용