/**
  * Convert models to eloquent models.
  *
  * @param \ProAI\Datamapper\Support\Collection $object
  * @return \ProAI\Datamapper\Eloquent\Collection
  */
 public static function newFromEntity($entities)
 {
     $eloquentModels = new static();
     foreach ($entities as $name => $item) {
         $eloquentModels->put($name, Model::newFromEntity($item));
     }
     return $eloquentModels;
 }
 /**
  * 向文件系统写内容
  * @param $key
  * @param $content string | resource
  * @return StoredFileContract | null
  */
 public static function create($key, $content)
 {
     $instance = new static($key);
     if ($instance->put($content)) {
         return $instance;
     } else {
         return null;
     }
 }
 /**
  * Convert models to eloquent models.
  *
  * @param \ProAI\Datamapper\Support\Collection $entities
  * @param string $lastObjectId
  * @param \ProAI\Datamapper\Eloquent\Model $lastEloquentModel
  * @return \ProAI\Datamapper\Eloquent\Collection
  */
 public static function newFromDatamapperObject($entities, $lastObjectId, $lastEloquentModel)
 {
     $eloquentModels = new static();
     foreach ($entities as $name => $item) {
         if (spl_object_hash($item) == $lastObjectId) {
             $model = $lastEloquentModel;
         } else {
             $model = Model::newFromDatamapperObject($item, $lastObjectId, $lastEloquentModel);
         }
         $eloquentModels->put($name, $model);
     }
     return $eloquentModels;
 }
 public static function create()
 {
     $env = new static();
     $env->put('define', new Core\Def());
     $env->put('lambda', new Core\Lambda());
     $env->put('println!', new Core\PrintLine());
     $env->put('print!', new Core\PrintCharacters());
     $env->put('when', new Core\When());
     $env->put('if', new Core\LogicalIf());
     $env->put('not', new Core\LogicalNot());
     $env->put('!', new Core\LogicalNot());
     $env->put('or', new Core\LogicalOr());
     $env->put('and', new Core\LogicalAnd());
     $env->put('=', new Core\Eq());
     $env->put('eq', new Core\Eq());
     $env->put('>', new Core\Gt());
     $env->put('gt', new Core\Gt());
     $env->put('>=', new Core\Gte());
     $env->put('gte', new Core\Gte());
     $env->put('<', new Core\Lt());
     $env->put('lt', new Core\Lt());
     $env->put('<=', new Core\Lte());
     $env->put('lte', new Core\Lte());
     $env->put('-', new Core\Sub());
     $env->put('+', new Core\Add());
     $env->put('/', new Core\Div());
     $env->put('*', new Core\Mult());
     $env->put('%', new Core\Mod());
     return $env;
 }