public function testResolve() { $memberName = "memberNameGoesHere"; $columnName = RedBeanModelMemberToColumnUtil::resolve($memberName); $this->assertNotEquals($memberName, $columnName); $this->assertEquals(strtolower($memberName), $columnName); }
/** * Provided modelClassName and rules for a member we resolve a column in table. * @param string $modelClassName * @param array $rules * @param $messageLogger * @return array|bool */ public static function resolve($modelClassName, array $rules, &$messageLogger) { if (empty($rules)) { return false; } $member = $rules[0][0]; assert('strpos($member, " ") === false'); $name = RedBeanModelMemberToColumnUtil::resolve($member); $type = null; $length = null; $notNull = null; $default = null; static::resolveColumnTypeAndLengthFromRules($modelClassName, $member, $rules, $type, $length, $notNull, $default, $messageLogger); if (!isset($type)) { return false; } return RedBeanModelMemberToColumnUtil::resolveColumnMetadataByHintType($name, $type, $length, null, $notNull, $default, null); }
/** * Provided indexName and metadata is resolved to match the requirements of schema definition * @param array $indexMetadata passed by reference, array containing index definition * @return bool whether or not we were able to resolve index correctly */ public static function resolve(array &$indexMetadata) { if (empty($indexMetadata['members']) || !is_array($indexMetadata['members'])) { return false; } $unique = false; if (isset($indexMetadata['unique'])) { $unique = $indexMetadata['unique']; } $indexMembers = $indexMetadata['members']; // Begin Not Coding Standard $indexMembers = array_map(function ($indexMember) { return RedBeanModelMemberToColumnUtil::resolve($indexMember); }, $indexMembers); // End Not Coding Standard $indexMetadata = array('columns' => $indexMembers, 'unique' => $unique); return true; }
protected static function setColumnsForPolymorphicLink($relatedModelClassName, $linkName) { $columns = array(); $columns[] = RedBeanModelMemberToColumnUtil::resolveForeignKeyColumnMetadata(RedBeanModelMemberToColumnUtil::resolve($linkName) . '_id'); $columns[] = static::resolvePolymorphicTypeColumnByLinkName($linkName); $tableName = $relatedModelClassName::getTableName(); $polymorphicLinkColumns = GeneralCache::getEntry(static::CACHE_KEY, array()); $polymorphicLinkColumns[$tableName] = $columns; GeneralCache::cacheEntry(static::CACHE_KEY, $polymorphicLinkColumns); }