检查PHP类完整性的方法

检查PHP类完整性的方法,php,mysql,Php,Mysql,我正在尝试编写一个脚本来检查我的PHP类文件是否与MySQL数据库表模式匹配 数据库表“品牌” 我的PHP类文件“Brand.PHP”如下所示: <?php class Brand { public $id; public $brand_name; public $founded; public $status; public $created_on; public $updated_on; public function __construct() {

我正在尝试编写一个脚本来检查我的PHP类文件是否与MySQL数据库表模式匹配

数据库表“品牌”

我的PHP类文件“Brand.PHP”如下所示:

<?php
class Brand {
  public $id;
  public $brand_name;
  public $founded;
  public $status;
  public $created_on;
  public $updated_on;

  public function __construct() {
     // constructor here
  }
}
?>

检查相应属性是否存在的最佳方法是什么

我想到的一种方法是使用PHP脚本检查上述PHP类:

使用该函数的一个缺点是,该函数只能在类外调用时获取公共属性。还有更好的选择吗

因为我使用的是基于Unix的系统,所以使用shell脚本也是可行的


允许您查看类的属性,无论是public/protected/private
ReflectionClass
似乎很有前途,谢谢@MarkBaker请添加您的建议作为答案,谢谢:)
property\u exists()
也很有用,只有安装了PHP5.3+(幸运的是我使用的是PHP5.4)。当PHP>=5.1&<5.3时,在
private
static
情况下,结果是不准确的。是的,您是对的。手册中对此进行了说明。我看到有人建议改课。这是一个很好的选择,因为它的兼容性!不过,如果执行
SHOW COLUMNS FROM table
,然后使用
property\u exists
遍历列,则会更容易(键入的^^更少)。如果您想使用
Brand()
(例如),ReflectionClass功能强大。如果我想检查类是否与表模式匹配,我希望
property\u exists
(如果我有它需要的PHP版本,ofc):)
<?php
class Brand {
  public $id;
  public $brand_name;
  public $founded;
  public $status;
  public $created_on;
  public $updated_on;

  public function __construct() {
     // constructor here
  }
}
?>
$brand = new Brand();
if(!property_exists($brand, 'brand_name'))
{
    throw new Exception("Brand doesn't match table's schema.");
}