1. 팔콘 프로젝트 생성시, 기본 생성되는 파일구조
- PHALCON
- 2018. 12. 20. 00:08
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- RSS 방지선 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
## 팔콘 프로젝트 생성 명령어는 아래와 같다.
## 이 외에도 많은 옵션자가 있지만, 일단 간단히 이름만 지정하면 만들어진다.
phalcon create-project --name=프로젝트이름
## 일단 팔콘 프로젝트를 생성하면 아래와 같은 구조로 생성될 것이다.
## 물론 favicon.ico 파일은 xampp 관련 파일이라 제외이다.
## 윈도우에서보면 대충 아래와 같고.
## 아래는 우분투에서 tree 명령어를 사용해서
## 폴더 구조도를 찍어보았다.
## 이제 하나씩 추적해서 까발려보자.
## 영어와의 싸움이 될 것 같다. 하.
## 이제부터 적는 내용은, 100% 완전한 정보가 아님을 밝힌다.
## 직접 체득해가며 써내려가는 것이기 때문에...
## 최상위에 있는 .htaccess
## 아파치를 위한, 설정파일같다.
## 이 파일을 삭제하면, 최상위에 있는 index.html 을 읽어오더라.
## 삭제해보면 아래와 같이 index.html 화면을 보게 된다.
## 아파치로 서버를 돌렸을 경우에만 해당된다. (xampp로 돌려서 실험함)
## nginx 서버로 돌릴경우에는 필요없는 파일같다.
## 애초에 nginx 서버는 세팅을 할 경우, public 폴더까지 경로를 잡아주기 때문인 듯.
## 아파치 서버를 사용할때만 사용하는 파일이 맞다.
## 또한 .htaccess 파일은 두개가 한세트인데,
## public/.htaccess 파일과 한세트이다.
## 먼저 최상위 .htaccess 를 거치고
## 다음 public/.htaccess 로 간 다음에
## public/index.php 로 이동이 되는 것이다.
## .htaccess파일을 사용하려면 아파치설치시, AllowOverride All 옵션을 설정해야 함.
## 그런데, xampp 를 설치하면 기본적으로 옵션세팅이 되어있나보다.
## 최상위에 있는 .htrouter.php
## 팔콘은 nginx, apache 가 없어도 자체적인 내부서버로 서버기동이 가능하다.
## 팔콘의 자체적 내부서버 기능을 위해서 필요한 파일같다.
## 결국 다른 WAS(web application server)를 사용한다면 필요없는 파일인 것 같다.
## 자체서버를 기동하는 명령어는 아래와 같다.
## 물론 phalcon-devtools 를 설치해뒀어야 한다.
## 프로젝트 폴더로 이동한 뒤에,
phalcon serve
## 접속주소는 http://localhost:8000 되시겠다.
## 최상위에 있는 index.html
## 뭐라고하지? 인터넷 웹서비스에서의 첫페이지 개념이라고 해야하나?
## 파일 안에 적혀있는 내용만 보면 웹서버가 정상작동을 안할 경우 보여주는 용도인듯.
## 좀더 알아먹기 편하게 나중에 고쳐놔야겠다.
## 물론 아파치를 사용할 경우, 필요한 파일이겠다.
## nginx는 불필요할듯? 싶다.
## 최상위에 있는 .phalcon 폴더
## 팔콘의 자체서버를 기동하는데 있어 필요한 폴더인듯 싶다.
## 서버를 기동해도, 폴더안에 생기는 파일은 없어보이는데..
## 자체서버가 아닌, 다른 was 로 연동하여 사용할 경우에는,
## .phalcon 폴더가 없어도 문제없이 돌아갔던 것 같다.
## 증거자료
Info: This command must be run inside a Phalcon project with a .phalcon directory. One was not found at C:\xampp\htdocs
Info: Shall I create the .phalcon directory now? (y/n)
## 최상위에 있는 cache 폴더
## 아직 모름
## public 폴더안의 css 폴더
## 아직 모름
## public 폴더안의 files 폴더
## 아직 모름
## public 폴더안의 img 폴더
## 아직 모름
## public 폴더안의 js 폴더
## 아직 모름
## public 폴더안의 temp 폴더
## 아직 모름
## public 폴더안의 .htaccess
## 아까 최상위 폴더안의 .htaccess 파일은 루트경로를 public 폴더로 바꿔주는 역할.
## 그렇다면 public 폴더안의 .htaccess 파일은 무엇일까?
## 아니 그전에, 소스안에 보면 mod_rewrite.c 가 있는데 이 모듈은 무엇일까?
## mod_rewrite 는 아파치 모듈의 한 종류로 서버 Request 를 정해진 규칙에 의하여,
## 다른 URL 또는 FILE 로 보내는 모듈이라고 한다.
## 일단 nginx 를 사용한다면, 쓸모없는 파일이란것이 판명났다.
## 그래도 좀 더 알아보기위해 뜯어보자.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
## 위의 것이 최상위 폴더에 있는 .htaccess 파일 코드이다.
## RewriteEngine 는 mod_rewrite 모듈을 사용할지 말지 결정하는 것이다.
## RewriteRule 은 mod_rewrite 모듈의 핵심지시자로써,
## 조건에 따른 rewrite 규칙을 설정하고, 그 규칙에 따른 동작을 설정한다.
## ^$ 는 정규식표현으로써, 'http://www.olidang.com/' 와 달리
## 'http://www.olidang.com' 으로 접속했을때 처리하겠다는 뜻이다.
## public/ 으로 이동시킨단 의미이고, 맨 뒤의 [L] 은 C언어 반복문의 break; 와 같다.
## 해당 코드를 만족한다면, 아래규칙들은 적용시키지 않겠다는 의미이다.
## 뭐 대충 그렇다. 정규식은 머리아프다.
## 그럼 public 폴더안의 .htaccess 파일을 살펴보자.
AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
## AddDefaultCharset 은 역시 아파치에서 쓰이는 기본캐릭터셋 설정 함수인것 같다.
## UTF-8 로 설정하겠다는 뜻이겠지.
## RewriteCond 지시자는 RewriteRule 과 함께 사용되는 규칙으로,
## RewriteCond다음에 오는 RewriteRule은 RewriteCond에 설정한 패턴과 일치해야만,
## RewriteRule 을 실행하게 하는 것이다.
## 나중에 필요할때 더 알아봐야겠다.
## 일단 여기까지.
## 아무튼 아파치 전용파일이다.
## nginx 를 사용하니깐, 더이상은 패스한다.
## 잘 설명해둔 사이트가 있으니, 필요할때 참고해보자.
http://faq.hostway.co.kr/Linux_WEB/1255
https://www.lesstif.com/pages/viewpage.action?pageId=18219493
## public 폴더안의 index.php
## 실질적인 웹서버의 index.php 파일인듯 하다.
## app 폴더
## 모든 스크립트 파일과 폴더로 구성된다.
## 전체 프로젝트는 app 폴더를 기반으로 설계된다.
## app 폴더안의 파일들은 웹어플리케이션이 실행되는데 있어 필요한 구성을 담고있다.
## app 폴더안의 config 폴더
## 팔콘의 웹 응용 프로그램에 필요한 모든 설정을 담고 있는 폴더
## 데이터베이스 연결, 추가 될 타사 라이브러리 및 포함될 서비스와 관련된 정보들이다.
## app 폴더안의 controllers 폴더
## MVC 모델의 컨트롤러 부분이 포함된다.
## 요청 처리 및 응답 생성에 사용된다.
## app 폴더안의 library 폴더
## 웹어플리케이션 용 타사 라이브러리가 포함되는 폴더이다.
## 기존 팔콘 프레임워크에서 사용되는 라이브러리는 제외이다.
## app 폴더안의 migrations 폴더
## 데이터이전과 관련된 파일들로 구성되어 있으며. 다른 프레임워크에서 사용가능하다.
## 아직 잘 모름
## app 폴더안의 models 폴더
## 데이터베이스와 상호작용하는데 필요한 논리가 포함되어 있다.
## 실제로는 데이터 표현에 사용된다.
## MVC 중 모델 부분에 해당된다.
## app 폴더안의 views 폴더
## 웹어플리케이션의 모든 화면구성을 담당한다.
## 뷰는 컨트롤러를 사용하여 최종 사용자에게 화면을 표시해준다.
## cache 폴더
## 캐싱과 관련된 데이터가 들어있으며, 성능을 향상시키는데 도움이 된다.
## 아직 잘 모름
## public 폴더
## CSS, Javascript, 업로드 파일 및 일부 메타 데이터로 구성된 자산관리용 모든 폴더다.
'PHALCON' 카테고리의 다른 글
2. 팔콘에서 mvc 생성 의미 (Model, View, Controller) (0) | 2018.12.21 |
---|