2010-01-21 4 views
9

많은 수의 함수가있는 경우 하나의 큰 파일에 모든 함수를 저장하는 것이 좋으며 여러 함수를 여러 파일로 나누는 것이 좋습니다. 더 나은 의미는 유지 보수성과 요청을 처리하는 서버 모두에 대해 더 효율적이라는 것을 의미합니다.함수 파일 포함을위한 효율성 (PHP)

예를 들어 지금은 내 파일이 모두 include.php이라는 파일에 있습니다. 그러나 다음과 같은 include 파일을 포함하는 것이 현명합니다.

<?php 
include('/functions/user.php'); 
include('/functions/admin.php'); 
include('/functions/content.php'); 
include('/functions/nav.php'); 
include('/functions/database.php'); 
include('/functions/other_junk.php'); 
?> 

답변

17

유지 관리를 위해 확실히 구분해야합니다. 퍼포먼스가 전혀 어려워 질지는 의심 스럽지만, 그렇게하더라도 (유지 보수가 쉽고 읽기 쉬운 코드를 작성하는 것이 낫다.)

+2

+1은 PHP에서 유지 보수성과 가독성을 전파합니다. – whiskeysierra

+0

-1, 모든 기능을 하나의 파일에 담아도 유지가 불가능하고 읽을 수 없음을 의미하지는 않습니다. ** ** 당신이하는 방법에 달려 있습니다. 사실, 다중 포함을 포함하더라도 여전히 유지 보수가 불가능하고 읽을 수없는 것이 가능합니다. – Pacerier

2

유지 관리 측면에서는 일반적으로 기능을 관련 그룹으로 분리하는 것이 좋습니다. (위에 표시된 것처럼, user.php은 사용자 관련 함수 일뿐입니다).

파일을 포함 할 필요가있을 때마다 포함 된 모든 파일이 필요할 것이라는 것을 알고 있으면 포함 된 파일 만 있어야합니다. 그렇지 않으면 'catch-all'파일을 가져 오는 목적을 상실합니다.

2

내 경험에 의하면 여러 개가 포함되어 있거나 일반적으로 수십억 개 정도의 함수 라이브러리에 대해 이야기하는 경우 너무 많이 다시 설정할 필요가 없습니다. 특히 요청주기 동안 한 번만 특정 파일에 대한 명령문을 호출하면됩니다.

OOP 나 매우 복잡한 기능/절차 유형 아키텍처가 있으면 수백 가지의 다양한 클래스/파일이있을 수 있습니다. 하지만 일반적으로이 시점에서 캐싱/컴파일을 통해 어떤 종류의 완화가 이루어질 것입니다.

+0

가속기가 없다면 실제로 천천히 느낄 것입니다. 디스크 읽기는 여전히 비쌉니다. – Pacerier

3

XCache 또는 APC와 같은 PHP 캐시를 사용하고 있는지 확인하고 싶습니다. 그러면 PHP 파일이 모두 메모리에 있어야하며 디스크 포함에 대해 걱정할 필요가 없습니다.

마음에 드는 기능/클래스를 자신의 파일로 분리하면 쉽게 찾을 수 있습니다.

+4

XCache 및 APC는 별도로 구성하지 않는 한 파일 수정 시간을 확인하여 파일의 새 버전을 처리해야하는지 확인합니다. 포함 수가 많으면 성능에 상당한 영향을줍니다. 코드가 수정 된 프로덕션 서버에서이 기능을 실제로 해제해야합니다. 새 버전의 코드를 업로드 할 때 캐시를 수동으로 플러시해야하는 대신 약간의 성능 향상 효과를 얻을 수 있습니다. – Mike

0

중앙 .config 파일에 포함 목록이 있습니다.

모든 OOP 클래스에 대해 필자는 autoload -> 약간 더 느리다는 것을 알고 있지만, 새로운 클래스를 만들 때 포함시키지 않아도됩니다. 그리고 그들은 필요할 때만 적재됩니다.

include는 파일이 이미 포함되어 있는지 확인할 필요가 없으므로 include_once보다 빠릅니다.