本文整理匯總了PHP中Inflector::instance方法的典型用法代碼示例。如果您正苦於以下問題:PHP Inflector::instance方法的具體用法?PHP Inflector::instance怎麽用?PHP Inflector::instance使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Inflector
的用法示例。
在下文中一共展示了Inflector::instance方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: createColumn
public function createColumn(&$column)
{
$c = new Column();
$c->inflectedName = Inflector::instance()->variablize($column['field']);
$c->name = $column['field'];
$c->nullable = $column['not_nullable'] ? false : true;
$c->pk = $column['pk'] ? true : false;
$c->autoIncrement = false;
if (substr($column['type'], 0, 9) == 'timestamp') {
$c->rawType = 'datetime';
$c->length = 19;
} elseif ($column['type'] == 'date') {
$c->rawType = 'date';
$c->length = 10;
} else {
preg_match('/^([A-Za-z0-9_]+)(\\(([0-9]+(,[0-9]+)?)\\))?/', $column['type'], $matches);
$c->rawType = count($matches) > 0 ? $matches[1] : $column['type'];
$c->length = count($matches) >= 4 ? intval($matches[3]) : intval($column['attlen']);
if ($c->length < 0) {
$c->length = null;
}
}
$c->mapRawType();
if ($column['default']) {
preg_match('/^nextval\\(\'(.*)\'\\)$/', $column['default'], $matches);
if (count($matches) == 2) {
$c->sequence = $matches[1];
} else {
$c->default = $c->cast($column['default'], $this);
}
}
return $c;
}
示例2: create_column
public function create_column(&$column)
{
$c = new Column();
$c->inflected_name = Inflector::instance()->variablize($column['field']);
$c->name = $column['field'];
$c->nullable = $column['null'] === 'YES' ? true : false;
$c->pk = $column['key'] === 'PRI' ? true : false;
$c->auto_increment = $column['extra'] === 'auto_increment' ? true : false;
if ($column['type'] == 'timestamp' || $column['type'] == 'datetime') {
$c->raw_type = 'datetime';
$c->length = 19;
} elseif ($column['type'] == 'date') {
$c->raw_type = 'date';
$c->length = 10;
} else {
preg_match('/^([A-Za-z0-9_]+)(\\(([0-9]+(,[0-9]+)?)\\))?/', $column['type'], $matches);
$c->raw_type = count($matches) > 0 ? $matches[1] : $column['type'];
if (count($matches) >= 4) {
$c->length = intval($matches[3]);
}
}
$c->map_raw_type();
$c->default = $c->cast($column['default']);
return $c;
}
示例3: load
public function load(Model $model)
{
$keys = array();
$inflector = Inflector::instance();
foreach ($this->foreign_key as $key) {
$keys[] = $inflector->variablize($key);
}
if (!($conditions = $this->create_conditions_from_keys($model, $this->primary_key, $keys))) {
return null;
}
$options = $this->unset_non_finder_options($this->options);
$options['conditions'] = $conditions;
$class = $this->class_name;
return $class::first($options);
}
示例4: set_table_name
private function set_table_name()
{
if (($table = $this->class->getStaticPropertyValue('table', null)) || ($table = $this->class->getStaticPropertyValue('table_name', null))) {
$this->table = $table;
} else {
// infer table name from the class name
$this->table = Inflector::instance()->tableize($this->class->getName());
// strip namespaces from the table name if any
$parts = explode('\\', $this->table);
$this->table = $parts[count($parts) - 1];
}
if (($db = $this->class->getStaticPropertyValue('db', null)) || ($db = $this->class->getStaticPropertyValue('db_name', null))) {
$this->db_name = $db;
}
}
示例5: create_column
public function create_column($column)
{
$c = new Column();
$c->inflected_name = Inflector::instance()->variablize($column['name']);
$c->name = $column['name'];
$c->nullable = $column['notnull'] ? false : true;
$c->pk = $column['pk'] ? true : false;
$c->auto_increment = $column['type'] == 'INTEGER' && $c->pk;
$column['type'] = preg_replace('/ +/', ' ', $column['type']);
$column['type'] = str_replace(array('(', ')'), ' ', $column['type']);
$column['type'] = Utils::squeeze(' ', $column['type']);
$matches = explode(' ', $column['type']);
if (count($matches) > 0) {
$c->raw_type = strtolower($matches[0]);
if (count($matches) > 1) {
$c->length = intval($matches[1]);
}
}
$c->map_raw_type();
if ($c->type == Column::DATETIME) {
$c->length = 19;
} elseif ($c->type == Column::DATE) {
$c->length = 10;
}
// From SQLite3 docs: The value is a signed integer, stored in 1, 2, 3, 4, 6,
// or 8 bytes depending on the magnitude of the value.
// so is it ok to assume it's possible an int can always go up to 8 bytes?
if ($c->type == Column::INTEGER && !$c->length) {
$c->length = 8;
}
$c->default = $c->cast($column['dflt_value']);
return $c;
}
示例6: __callStatic
/**
* Enables the use of dynamic finders.
*
* Dynamic finders are just an easy way to do queries quickly without having to
* specify an options array with conditions in it.
*
* <code>
* SomeModel::findByFirstName('Tito');
* SomeModel::findByFirstNameAndLastName('Tito','the Grief');
* SomeModel::findByFirstNameOrLastName('Tito','the Grief');
* SomeModel::findAllByLastName('Smith');
* SomeModel::countByName('Bob')
* SomeModel::countByNameOrState('Bob','VA')
* SomeModel::countByNameAndState('Bob','VA')
* </code>
*
* You can also create the model if the find call returned no results:
*
* <code>
* Person::findOrCreateByName('Tito');
*
* # would be the equivalent of
* if (!Person::findByName('Tito'))
* Person::create(array('Tito'));
* </code>
*
* Some other examples of find_or_create_by:
*
* <code>
* Person::findOrCreateByNameAndId('Tito',1);
* Person::findOrCreateByNameAndId(array('name' => 'Tito', 'id' => 1));
* </code>
*
* @param string $method Name of method
* @param mixed $args Method args
* @return Model
* @throws {@link ActiveRecordException} if invalid query
* @see find
*/
public static function __callStatic($method, $args)
{
// TODO: Remove this bad fix, rewrite the code below properly.
$method = strtolower(Inflector::instance()->underscorify($method));
$options = static::extractAndValidateOptions($args);
$create = false;
if (substr($method, 0, 17) == 'find_or_create_by') {
$attributes = substr($method, 17);
// can't take any finders with OR in it when doing a find_or_create_by
if (strpos($attributes, '_or_') !== false) {
throw new ActiveRecordException("Cannot use OR'd attributes in find_or_create_by");
}
$create = true;
$method = 'find_by' . substr($method, 17);
}
if (substr($method, 0, 7) === 'find_by') {
$attributes = substr($method, 8);
$options['conditions'] = SQLBuilder::createConditionsFromUnderscoredString(static::connection(), $attributes, $args, static::$aliasAttribute);
if (!($ret = static::find('first', $options)) && $create) {
return static::create(SQLBuilder::createHashFromUnderscoredString($attributes, $args, static::$aliasAttribute));
}
return $ret;
} elseif (substr($method, 0, 11) === 'find_all_by') {
$options['conditions'] = SQLBuilder::createConditionsFromUnderscoredString(static::connection(), substr($method, 12), $args, static::$aliasAttribute);
return static::find('all', $options);
} elseif (substr($method, 0, 8) === 'count_by') {
$options['conditions'] = SQLBuilder::createConditionsFromUnderscoredString(static::connection(), substr($method, 9), $args, static::$aliasAttribute);
return static::count($options);
}
throw new ActiveRecordException("Call to undefined method: {$method}");
}