2016-10-05 10 views
1

그래서 2006 년부터 PHP에서 절차 적 프로그래밍 스타일을 사용 해왔다. 그러나 지난 4 년 이상 많은 성과를 거두지 못했다.동적 PHP 짧은 URL

최근에 나는 객체 지향 프로그래밍을 더 많이 인정하기 시작했습니다.

나에게 가장 많이 지적하는 것은 MVC 스타일의 조직이며 짧은 URL입니다.

"index.php? page = profile & member = 1"대신 "page/profile/member/1"이 될 것입니다.

넓은 범위의 리소스를 사용하여 OOP & MVC 아키텍처를 배우려고하고 있지만 여전히 파악하기에는 너무 많은 부분입니다. 한달이 지난 후에도!

저는 항상 기본 기능 (등) {}, if, else 및 or 또는 명령문과 SQL 쿼리를 사용하여 작업을 완료했습니다. 지금까지 그 지식은 내가 필요한 모든 것을 대부분 다루었습니다.

기본 절차 형 프로그래밍 스타일을 사용하고 단축 URL을 얻을 수있는 방법이 있는지 궁금합니다.

나는

htaccess로

RewriteEngine On 
RewriteCond $1 !^(index\.php) 
RewriteRule ^(.*)$ index.php?page=$1 [L] 

index.php를

<?php 

$links = parse_ini_file('links.ini'); 

if (isset($_GET['page']) && array_key_exists($_GET['page'], $links)) { 
    require $links[$_GET['page']]; 
} 
else { 
    echo ' 
    Home page or unknown link 
    '; 
} 

links.ini

,691 아래에이 방법을 시도했습니다
members = pages/members.php 
profile = pages/profile.php 

이 방법은 간단히 URL을 단축하는 데 사용되지만 profile/user/1 일명 index.php와 함께 작동시키는 방법을 모르겠습니다. page = profile & user = 1 (사용자 변수는 데이터베이스 쿼리)

어떤 도움을 주시면 대단히 감사하겠습니다 !!!

+1

찾으시는 키워드 (요즘)는 다음과 같습니다. 기본 자습서는 http://blogs.shephertz.com/2014/05/21/how-to-implement-url-routing-in-php/에서 찾을 수 있지만 일부 인터넷 검색의 경우 훨씬 더 고급 기능을 찾을 수 있습니다. 물건. – Blaatpraat

+0

처음에는 머리를 감싸는 데 필요한 하드 튜토리얼입니다. 적어도 저에게 도움이되었으므로 간단한 라우터를 만드는 데 도움이됩니다 ... https://www.youtube.com/watch?v=OsCTzGASImQ 그들은 훨씬 더 신뢰할 수있는 라우터를 내장하고 있기 때문에 프레임 워크에 들어가서 (그리고 작곡가에 대해 배우기를 권합니다.) 학습자가 제작할 수있는 모든 것 ... –

+0

그냥 MVC의 개념을 받아 들일 수있는 조금 어렵지만, 그것으로 붙어 있습니다. 인기있는 현대적인 프레임 워크 (인기있는 것은 중요한 커뮤니티로서 질문을하거나 튜토리얼을 찾는 등)가 필요하며 기본 블로그와 같이 처음부터 새로 만들 수 있습니다. 나는 라라 셀 (laracast)의 도움으로 라라 베르 (laravel)를 제안 할 것이다. (아주 좋은 비디오 튜토리얼, 초보자 대부분은 무료 다.) 라우팅 시스템을 넘어서는 훌륭한 프레임 워크에는 많은 것들이 있습니다. 오토로드 및 orms를 이해하면 셸 스크립트를 제외하고 프로 시저 바닐라 PHP로 돌아 가지 않을 것입니다. – Steve

답변

0

front controller으로 수행 할 수 있습니다. 이 Sitepoint article은 개념을 흡수하는 데 도움이 될 수 있지만 객체 지향적 일 필요는 없습니다.

기본적으로, 당신은 단지 index.php에 모든 요청을 지시 할 것입니다 재 작성 실제 작업을 수행하기보다는 :

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php 

지금, index.php 내에서, 당신은 parse_url와 떨어져 요청을 선택할 수 있으며, 그러나 당신이 원하는 요청을 처리합니다.