저는 현재 교육용 (그리고 실용적이라면 실용적인 경우) 사용자 정의 MVC 프레임 워크를 만드는 것을 망설이고 있습니다. 가능한 성능 향상을 위해 여러 가지 시나리오를 조사하십시오. 이 URI 라우팅에 관해서MVC 라우팅 - PHP (또는 Ruby 등) 대신 NGINX를 사용합니다.
, 나는
/controller/action/id
그리고 라우팅을 제어하려면이 밖으로 데이터를 분석하는 것은 너무 어렵지 않을 것의 표준 URI 형식을 잘 알고 있어요. 지금 제가있는 moreso에 대해 궁금하고있어 nginx를 직접 컨트롤러에 전달하는 몇 가지 유형의 쿼리 문자열로 출력이 URI 문자열을 구문 분석 가진 사이의 성능 차이는, 그래서 그 대신
/foo/bar/12 => /application/foo.php?action=bar&id=12
처럼 끝날 것
/foo/bar/12 => /index.php?controller=foo&action=bar&id=12
또는
/foo/bar/12 => /index.php?uri=/foo/bar/12 (note that this would be encoded)
내가 nginx를 이미 다른 변수에 PHP-FPM에 대한 URL, 쿼리 문자열 및 기타 물건을 전달하는 알고 있어요,하지만 이것은 단지입니다 내가 생각하는 것을 보여주는 설명의 목적.
어리석은 짓인가요? 나는 nginx에서 명시 적으로 경로를 정의함으로써 nginx를 다시 시작할 필요가 있음을 알았다. 설정에서 경로를 변경할 때마다 단점이 될 수있다.
그래서 MVC 라우팅에 관해서는 실제 웹 서버 (이 경우 nginx) 자체가 컨트롤러에 대한 라우팅을 처리하거나 표준 랜딩 스크립트를 사용하면 성능이 향상됩니다. (디렉토리의 루트에있는 index.php와 같음) 라우팅을 위해 파싱 할 URI를 따라 잘 전달할 수 있습니까?
미리 감사드립니다. 또한, 나는 단지 이것들에 대해 배우고 있기 때문에, 나는 진심으로 대신 내가해야하는 것에 대한 제안을 환영한다.
여기서 생각해보기 : 프레임 워크를 사용하여 두 언어로 된 뉴스 사이트를 구현하는 방법 (URL은 일부 번역도 가능) –
당신은 아직 그것을 고려하지 않았기 때문에 좋은 질문을 제기합니다. 내가 다른 언어를 고려하고 있다면, 아마도/en,/es와 같은 끝에 uri에 추가 지시문을 추가하고 uri를 내 프레임 워크가 수행 할 수있는 위치에 적절하게 현지화 할 수있는지도를 가지고있을 것입니다. 이해하고 데이터베이스를 제대로 질의하는 데 사용하십시오. 그래도 내 머리 꼭대기에서 떨어져. –