LazyRecord\Schema\Factory\BaseCollectionClassFactory::create PHP Method

create() public static method

public static create ( DeclareSchema $schema, $baseCollectionClass )
$schema lazyrecord\schema\DeclareSchema
    public static function create(DeclareSchema $schema, $baseCollectionClass)
    {
        $cTemplate = new ClassFile($schema->getBaseCollectionClass());
        $cTemplate->addConsts(array('SCHEMA_PROXY_CLASS' => $schema->getSchemaProxyClass(), 'MODEL_CLASS' => $schema->getModelClass(), 'TABLE' => $schema->getTable(), 'READ_SOURCE_ID' => $schema->getReadSourceId(), 'WRITE_SOURCE_ID' => $schema->getWriteSourceId(), 'PRIMARY_KEY' => $schema->primaryKey));
        if ($traitClasses = $schema->getCollectionTraitClasses()) {
            foreach ($traitClasses as $traitClass) {
                $cTemplate->useTrait($traitClass);
            }
        }
        $cTemplate->extendClass('\\' . $baseCollectionClass);
        // interfaces
        if ($ifs = $schema->getCollectionInterfaces()) {
            foreach ($ifs as $iface) {
                $cTemplate->implementClass($iface);
            }
        }
        return $cTemplate;
    }

Usage Example

 public function generateSchema(SchemaInterface $schema, $overwrite = false)
 {
     $classMap = array();
     $cTemplates = array();
     $cTemplates[] = BaseModelClassFactory::create($schema, $this->getBaseModelClass());
     $cTemplates[] = SchemaProxyClassFactory::create($schema);
     $cTemplates[] = BaseCollectionClassFactory::create($schema, $this->getBaseCollectionClass());
     foreach ($cTemplates as $cTemplate) {
         if ($result = $this->updateClassFile($cTemplate, $schema, $overwrite)) {
             list($className, $classFile) = $result;
             $classMap[$className] = $classFile;
         }
     }
     if ($result = $this->generateCollectionClass($schema, false)) {
         list($className, $classFile) = $result;
         $classMap[$className] = $classFile;
     }
     if ($result = $this->generateModelClass($schema, false)) {
         list($className, $classFile) = $result;
         $classMap[$className] = $classFile;
     }
     return $classMap;
 }
All Usage Examples Of LazyRecord\Schema\Factory\BaseCollectionClassFactory::create
BaseCollectionClassFactory