2012-11-28 4 views
2

의 내가 smallBox.php라는 클래스 파일이 있다고 가정 해 봅시다 :클래스 내에 클래스를 포함하는 것은 나쁜 습관입니까?

<?php 
class SmallBox { 

    public function boxMethod() {} 

} 

나는 다음 smallBox.php가 '필요'를 사용하여 다른 클래스에 파일을 포함한다 :

<?php 
class BigBox { 

    public function __construct() { 

     require 'smallBox.php'; 
     $box = new SmallBox(); 
     $box->boxMethod(); 

    } 

} 
?> 

을 내가 PHP OOP에 새로운 오전 및 MVC 및 BigBox 클래스에 smallBox.php 포함 나쁜 연습 것으로 간주됩니다 궁금해?

+0

http://cstheory.stackexchange.com/ –

+0

에 대한 답변이 더 좋을 수 있습니다. 모든 상황이 좋지 않습니다. –

+0

[autoloading] (http://phpmaster.com/autoloading-and-the-psr-0-standard)을 시도하십시오. – Gordon

답변

4

대신 수동으로 require, 당신은 autoloading of classes을 사용해야합니다 사용 클래스 선언하기 전에 구조를 포함한다. 기본적으로 클래스 이름을 기반으로 적절한 PHP 파일을로드하는 메커니즘입니다.

1

다른 파일을 포함 시키거나 필요로 할 때 해당 파일 변수가 포함 된 범위 내에서 작동한다는 점을 기억하십시오. 한때 "loader"클래스로 javas 가져 오기 동작을 에뮬레이트하려고 시도했지만로드 한 클래스가 해당 기본 클래스의 범위 밖에서 사용할 수 없었기 때문에이 문제가 발생했습니다. 더 명확하게 보려면 설명서를 확인하십시오.

2

required_once 및 include_once를 사용하십시오. PHP 파일을 -ing

include_once 'path/to/class/a.php'; 

class B extends A 
{ 
    public function __construct() 
    { 
    // your code 
    } 

} 
관련 문제