2012-06-04 3 views
0

현재 표준 PHP를 사용하여 응용 프로그램을 개발 중입니다. 이와 같이 양식에서 호출되는 다양한 기능이 있습니다. 일부 예로 등록, 로그인, 로그 아웃 등이 있습니다.PHP 함수에 액세스하기위한 대안

각 기능에 대해 별도의 파일을 만드는 대신 includes 폴더에 phpscripts.php 파일을 사용하고 있습니다. html 입력에서 함수를 실행하려면 URL을 ?action=functionName으로 채 웁니다. 스크립트 파일에서 스위치/사례 트리를 사용하여 S_GET['action'] 변수를 기반으로 적절한 기능을 실행합니다.

PHP 함수에 대한 HTML 호출을 구현하는 더 좋은 방법이 있습니까?

+0

그냥 action = deleteALL 또는 다른 추측으로 URL에 충돌 할 수 있습니까 –

+0

[PHP 프레임 워크] (http://www.phpframeworks.com/) 사용법을 고려하십시오. – meagar

+0

@Dagon, no. 다른 모든 기능은 POST 값에 따라 달라 지므로 작동하지 않습니다. GET은 버튼 액션을 함수에 전달하는 데에만 사용됩니다. – Jason

답변

1

아니요, HTML 양식과 PHP 스크립트를 연결하는 올바른 방법입니다. 다른 대안으로는 URL 재 작성 (/actions/functionname/param?action=functionname&param=x으로 변환)을 사용하는 것이 포함되지만 기본 원칙은 동일하게 유지됩니다.

1

위와 같이 모든 요청을 처리하는 하나의 스크립트를 갖는 것이 좋습니다. /process_action.php와 같은 것. 함수가 있는지 확인하고, 로그인 한 사용자를 확인하고, 데이터베이스에 연결하고, 공유 리소스를 만드는 등의 통합 된 작업을 처리합니다.

Apache를 사용하는 경우 다음을 수행 할 수 있습니다. 모드 재작 성을 사용하여 URL 꽤. 당신은이 웹 사이트에 .htaccess 파일에 배치 다음과 같은 것을 사용하여

/process_action.php?action=function&restofquery 

/actions/function/?restofquery 

을 해제 할 수 있습니다. 당신이 model/view/controller (MVC)을 발견의 직전에있는 것처럼 보조 노트로

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^(.*)$ 
RewriteRule ^/actions/([-_a-zA-Z0-9]+)/?$ /process_action.php?action=$1&%1 [L] 

는 질문이 울립니다. 몇 가지 위대한 프레임 워크가 있지만, 당신이 자신의 롤백에서 당신을 방해하게하지 마십시오. 방법을 통해 배우십시오 :)

+0

저는 Java MVC 및 framweworks, 특히 Grails에 익숙합니다. 문제는이 프로젝트가 최소한의 의존성 요구 사항을 가지고 있거나, Zend 또는 CodeIgniter를 하트 비트에 통합하여 시작한다는 것입니다. – Jason