2013-05-02 3 views
0

나는 모든 클래스를 보유 할 config.php 파일을 만들어야한다고 들었다.PHP 설정 객체 지향 클래스가 올바르게 있습니까?

예를 들어 내가 3 개의 클래스를 갖고 있다고 가정 해 보겠습니다.

1 등급 : 하우스

2 등급 : myCar라는

등급 3 : 나는 그들에게 전화

그리고 config.php에있는

도로 :

$house = new house(); 

$mycar = new myCar(); 

$road = new Road(); 

그런 다음 config.php 파일을 모든 페이지에 포함시킵니다 (예 : index.php).

하지만 지금은 도로를 확장하고 싶습니다.

해당 클래스에는 config.php를 포함 할 수 없습니까? 또는 config.php에 이미 포함되어있는 동안 다른 클래스 파일을 포함 시키십시오.

잘못된 수업 설정 방법입니까?

어떻게 오류없이 클래스를 확장 할 수 있습니까?

매번 새로운 개체를 만들어야합니까?

예 :

/** 
* Index.php 
**/ 
include("class/house.class.php"); 

$class = new House(); 

echo $class->echoMe("hey"); 

을 모든 파일에 나는 그럼, 새로운 객체를 생성하여 동일한 작업을 수행합니다

대신 config.php를 등의 악은 이렇게 필요한 경우 특정 수업을 확장 할 수 있습니까?

답변

2
function autoload($class) { 
    if (is_file($file = 'www/content/includes/class/'.$class.'.php')) { 
     require_once($file); 
    } 
} 

spl_autoload_register('autoload'); 

config.php 파일에 다음 코드를 포함하십시오. 클래스를로드하려는 모든 파일에 구성 파일을 포함해야합니다.

파일 이름이 해당하는 클래스와 동일한 지 확인하십시오. 예를 들어

$house = new House(); 

는 House.php

시작 당신은 기본적으로 당신이 할 때마다 호출되는 함수를 만들 spl_autoload_register()를 사용할 수

<? 
    class House { 

     function something() { 

     } 

    } 
+0

로그인을 처리하고 로그인은 users.class.php에 있습니다. login.php에 users.class.php를 포함시키고 $ users = new Users();를 할 수 있습니까? 그게 적절한 방법입니까? – user2326532

+0

내 대답이 업데이트되었습니다. – Freddy

+0

고마워, 지금은 .. .. 이제 login.php에 설정을 포함하고 $ users = new Users(); ? – user2326532

1

각 클래스 파일로 클래스 파일 이름을 필요로 PHP가 전에 만나지 않은 클래스가 호출됩니다.

/** 
* config.php 
*/ 
function classAutoLoad($class) { 
    if (file_exists("class/$class.class.php")) 
     include("class/$class.class.php"); 
} 

spl_autoload_register('classAutoload'); 

/** 
* someFile.php 
*/ 
reauire_once('config.php'); 
$house = new House();