本文整理匯總了PHP中Inflector::words_to_upper方法的典型用法代碼示例。如果您正苦於以下問題:PHP Inflector::words_to_upper方法的具體用法?PHP Inflector::words_to_upper怎麽用?PHP Inflector::words_to_upper使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Inflector
的用法示例。
在下文中一共展示了Inflector::words_to_upper方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: forge
/**
* Factory for fetching the ViewModel
*
* @param string ViewModel classname without View_ prefix or full classname
* @param string Method to execute
* @return ViewModel
*/
public static function forge($view, $method = 'view', $auto_filter = null)
{
// strip any extensions from the view name to determine the viewmodel to load
$viewmodel = \Inflector::words_to_upper(str_replace(array('/', DS), '_', strpos($view, '.') === false ? $view : substr($view, 0, -strlen(strrchr($view, '.')))));
// determine the viewmodel namespace from the current request context
$namespace = \Request::active() ? ucfirst(\Request::active()->module) : '';
// list of possible viewmodel classnames, start with the namespaced one
$classes = array($namespace . '\\View_' . $viewmodel);
// add the global version if needed
empty($namespace) or $classes[] = 'View_' . $viewmodel;
/**
* Add non View_ prefixed classnames to the list, for BC reasons
*
* @deprecated 1.6
*/
$classes[] = $namespace . '\\' . $viewmodel;
// and add the global version of that if needed
empty($namespace) or $classes[] = $viewmodel;
// check if we can find one
foreach ($classes as $class) {
if (class_exists($class)) {
return new $class($method, $auto_filter, $view);
}
}
throw new \OutOfBoundsException('ViewModel "' . reset($classes) . '" could not be found.');
}
示例2: action_index
public function action_index($related_model_key, $selected_id)
{
$post_input = Input::post();
$this->request_data = $post_input['request_data'];
$this->base_form_name = $post_input['form_name'];
$this->base_model_name = 'Model_' . \Inflector::words_to_upper(ltrim($this->base_form_name, '_'));
$this->related_model_key = $related_model_key;
$this->related_model_name = 'Model_' . \Inflector::words_to_upper(str_replace('_id', '', ltrim($this->related_model_key, '_')));
// Process conditions for what options to get
$find_conditions_array = $relations_array = $order_by_array = [];
if (array_key_exists('conditions', $this->request_data)) {
if (array_key_exists('where', $this->request_data['conditions'])) {
foreach ($this->request_data['conditions']['where'] as $key => $value) {
if (strpos('_value', $value) !== false) {
$value = $selected_id;
}
$find_conditions_array[$key] = $value;
}
}
}
// Get related models with above conditions
$model_object = new $this->related_model_name();
$this->related_model = $model_object->find('all', ['where' => $find_conditions_array, 'related' => $relations_array, 'order_by' => $order_by_array]);
// Work out here what colour it is and if it's selected
// @todo code the conditional stuff!
if (array_key_exists('selected', $this->request_data)) {
$selected_array = $this->request_data['selected'];
} else {
$selected_array = [];
}
$colour = '';
// Process the returned related models into options using the template (if specified),
// and setting highlighting/selected attributes where appropriate.
foreach ($this->related_model as $related_model) {
in_array($related_model->id, $selected_array) ? $selected = 'selected="selected"' : ($selected = '');
// Prepare the option's text from the specified template
$text_object = new \EBS\Form_Option_Text($related_model, $this->request_data['template']);
$text = $text_object->get_text();
// Generate the option html and concatenate it to the options string
$option_html = "<option value=\"{$related_model->id}\"{$selected}{$colour}>{$text}</option>";
$this->options_html .= $option_html;
}
// Prepare the updated view for the response object.
$updated_view = new \EBS\Response_View();
$updated_view->html = $this->options_html;
$updated_view->context = $post_input['response_target'];
$this->response->updated_views[] = $updated_view;
// Encode the response object as JSON and send it back to the UI!
return Response::forge(json_encode($this->response));
}
示例3: forge
/**
* Generates a new request. The request is then set to be the active
* request. If this is the first request, then save that as the main
* request for the app.
*
* Usage:
*
* Request::forge('hello/world');
*
* @param string The URI of the request
* @param mixed Internal: whether to use the routes; external: driver type or array with settings (driver key must be set)
* @param string request method
* @return Request The new request object
*/
public static function forge($uri = null, $options = true, $method = null)
{
is_bool($options) and $options = array('route' => $options);
is_string($options) and $options = array('driver' => $options);
if (!empty($options['driver'])) {
$class = \Inflector::words_to_upper('Request_' . $options['driver']);
return $class::forge($uri, $options, $method);
}
$request = new static($uri, isset($options['route']) ? $options['route'] : true, $method);
if (static::$active) {
$request->parent = static::$active;
static::$active->children[] = $request;
}
return $request;
}
示例4: deal_relation
private function deal_relation($action)
{
foreach (array_keys($this->id_keys) as $key) {
// If the key doesn't contain the name of the parent model we're creating, it's the relations name
if (strpos($key, $this->item_name) === false) {
$relation_name = str_replace('_id', '', $key);
$relation_model_name = 'Model_' . \Inflector::words_to_upper($relation_name);
$relation_model = new $relation_model_name();
// E.g. note->person[] = person
$this->models_and_actions[0][0]->{$relation_name}[] = $relation_model::find($this->id_keys[$key]);
}
}
if ($action !== 'delete' && $relation_model !== null) {
}
}
示例5: forge
/**
* Generates a new request. The request is then set to be the active
* request. If this is the first request, then save that as the main
* request for the app.
*
* Usage:
*
* Request::forge('hello/world');
*
* @param string The URI of the request
* @param mixed Internal: whether to use the routes; external: driver type or array with settings (driver key must be set)
* @param string request method
* @return Request The new request object
*/
public static function forge($uri = null, $options = true, $method = null)
{
is_bool($options) and $options = array('route' => $options);
is_string($options) and $options = array('driver' => $options);
if (!empty($options['driver'])) {
$class = \Inflector::words_to_upper('Request_' . $options['driver']);
return $class::forge($uri, $options, $method);
}
$request = new static($uri, isset($options['route']) ? $options['route'] : true, $method);
if (static::$active) {
$request->parent = static::$active;
static::$active->children[] = $request;
}
// fire any request created events
\Event::instance()->has_events('request_created') and \Event::instance()->trigger('request_created', '', 'none');
return $request;
}
示例6: forge
/**
* Factory for fetching the Presenter
*
* @param string Presenter classname without View_ prefix or full classname
* @param string Method to execute
* @param bool Auto filter the view data
* @param string View to associate with this persenter
* @return Presenter
*/
public static function forge($presenter, $method = 'view', $auto_filter = null, $view = null)
{
// determine the presenter namespace from the current request context
$namespace = \Request::active() ? ucfirst(\Request::active()->module) : '';
// create the list of possible class prefixes
$prefixes = array(static::$ns_prefix, $namespace . '\\');
/**
* Add non prefixed classnames to the list as well, for BC reasons
*
* @deprecated 1.6
*/
if (!empty($namespace)) {
array_unshift($prefixes, $namespace . '\\' . static::$ns_prefix);
$prefixes[] = '';
}
// loading from a specific namespace?
if (strpos($presenter, '::') !== false) {
$split = explode('::', $presenter, 2);
if (isset($split[1])) {
array_unshift($prefixes, ucfirst($split[0]) . '\\' . static::$ns_prefix);
$presenter = $split[1];
}
}
// if no custom view is given, make it equal to the presenter name
is_null($view) and $view = $presenter;
// strip any extensions from the view name to determine the presenter to load
$presenter = \Inflector::words_to_upper(str_replace(array('/', DS), '_', strpos($presenter, '.') === false ? $presenter : substr($presenter, 0, -strlen(strrchr($presenter, '.')))));
// create the list of possible presenter classnames, start with the namespaced one
$classes = array();
foreach ($prefixes as $prefix) {
$classes[] = $prefix . $presenter;
}
// check if we can find one
foreach ($classes as $class) {
if (class_exists($class)) {
return new $class($method, $auto_filter, $view);
}
}
throw new \OutOfBoundsException('Presenter "' . reset($classes) . '" could not be found.');
}
示例7: hasController
/**
* Used in the 'behind the scenes' logic during a frontend request, this checks whether
* there is a controller associated with a particular template
*
* @param string $template Path to the template, relative to the root of the views directory
* @return boolean
*/
public static function hasController($template)
{
static::$path = strpos($template, '.') === false ? $template : substr($template, 0, -strlen(strrchr($template, '.')));
// determine the viewmodel namespace and classname
if (empty(static::$module)) {
static::$module = \Request::active() ? ucfirst(\Request::active()->module) : '';
}
// Strip the first part of the path off for module templates
if (!empty(static::$module) && strpos(static::$path, static::$module) === 0) {
static::$path = str_replace(static::$module . '/', '', static::$path);
}
$controller_class = ucfirst(static::$module) . '\\Controller_' . \Inflector::words_to_upper(ucfirst(str_replace(array('/', DS), '_', static::$path)));
return class_exists($controller_class);
}
示例8: parse_segments
protected static function parse_segments($segments, $namespace = '', $module = false)
{
$temp_segments = $segments;
foreach (array_reverse($segments, true) as $key => $segment) {
$class = $namespace . 'Controller_' . \Inflector::words_to_upper(implode('_', $temp_segments));
array_pop($temp_segments);
if (class_exists($class)) {
return array('controller' => $class, 'action' => isset($segments[$key + 1]) ? $segments[$key + 1] : null, 'method_params' => array_slice($segments, $key + 2));
}
}
// Fall back for default module controllers
if ($module) {
$class = $namespace . 'Controller_' . ucfirst($module);
if (class_exists($class)) {
return array('controller' => $class, 'action' => isset($segments[0]) ? $segments[0] : null, 'method_params' => array_slice($segments, 1));
}
}
return false;
}
示例9: find_controller
/**
* Find the controller that matches the route requested
*
* @param Route $match the given Route object
* @return mixed the match array or false
*/
protected static function find_controller($match)
{
// First port of call: request for a module?
if (\Fuel::module_exists($match->segments[0])) {
// make the module known to the autoloader
\Fuel::add_module($match->segments[0]);
$segments = $match->segments;
// first check if the controller is in a directory.
$match->module = array_shift($segments);
$match->directory = count($segments) ? array_shift($segments) : null;
$match->controller = count($segments) ? array_shift($segments) : $match->module;
// does the module controller exist?
if (class_exists(Inflector::words_to_upper($match->module . '\\Controller_' . $match->directory . '_' . $match->controller))) {
$match->action = count($segments) ? array_shift($segments) : null;
$match->method_params = $segments;
return $match;
}
$segments = $match->segments;
// then check if it's a module controller
$match->module = array_shift($segments);
$match->directory = null;
$match->controller = count($segments) ? array_shift($segments) : $match->module;
// does the module controller exist?
if (class_exists(Inflector::words_to_upper($match->module . '\\Controller_' . $match->controller))) {
$match->action = count($segments) ? array_shift($segments) : null;
$match->method_params = $segments;
return $match;
}
$segments = $match->segments;
// do we have a module controller with the same name as the module?
if ($match->controller != $match->module) {
array_shift($segments);
$match->controller = $match->module;
if (class_exists(Inflector::words_to_upper($match->module . '\\Controller_' . $match->controller))) {
$match->action = count($segments) ? array_shift($segments) : null;
$match->method_params = $segments;
return $match;
}
}
}
$segments = $match->segments;
// It's not a module, first check if the controller is in a directory.
$match->directory = array_shift($segments);
$match->controller = count($segments) ? array_shift($segments) : $match->directory;
if (class_exists(\Inflector::words_to_upper('Controller_' . $match->directory . '_' . $match->controller))) {
$match->action = count($segments) ? array_shift($segments) : null;
$match->method_params = $segments;
return $match;
}
$segments = $match->segments;
// It's not in a directory, so check for app controllers
$match->directory = null;
$match->controller = count($segments) ? array_shift($segments) : $match->directory;
// We first want to check if the controller is in a directory.
if (class_exists(\Inflector::words_to_upper('Controller_' . $match->controller))) {
$match->action = count($segments) ? array_shift($segments) : null;
$match->method_params = $segments;
return $match;
}
// none of the above. I give up. We've found ziltch...
$match->action = null;
$match->controller = null;
return $match;
}
示例10: parse_segments
protected static function parse_segments($segments, $namespace = '', $module = false)
{
$temp_segments = $segments;
$prefix = static::get_prefix();
foreach (array_reverse($segments, true) as $key => $segment) {
// determine which classes to check. First, all underscores, or all namespaced
$classes = array($namespace . $prefix . \Inflector::words_to_upper(implode(substr($prefix, -1, 1), $temp_segments), substr($prefix, -1, 1)));
// if we're namespacing, check a hybrid version too
$classes[] = $namespace . $prefix . \Inflector::words_to_upper(implode('_', $temp_segments));
array_pop($temp_segments);
foreach ($classes as $class) {
if (static::check_class($class)) {
return array('controller' => $class, 'action' => isset($segments[$key + 1]) ? $segments[$key + 1] : null, 'method_params' => array_slice($segments, $key + 2));
}
}
}
// Fall back for default module controllers
if ($module) {
$class = $namespace . $prefix . ucfirst($module);
if (static::check_class($class)) {
return array('controller' => $class, 'action' => isset($segments[0]) ? $segments[0] : null, 'method_params' => array_slice($segments, 1));
}
}
return false;
}
示例11: translate_driver_name
/**
* Translates a driver name to a class name
*
* @param string $name Name of the driver (eg, 'facebook')
* @return string 'Ethanol\Auth_Driver_Facebook'
*/
public function translate_driver_name($name)
{
return 'Ethanol\\Auth_Driver_' . \Inflector::words_to_upper($name);
}
示例12: forge
/**
* Generates a new request. The request is then set to be the active
* request. If this is the first request, then save that as the main
* request for the app.
*
* Usage:
*
* Request::forge('hello/world');
*
* @param string The URI of the request
* @param mixed Internal: whether to use the routes; external: driver type or array with settings (driver key must be set)
* @return Request The new request object
*/
public static function forge($uri = null, $options = true)
{
logger(\Fuel::L_INFO, 'Creating a new Request with URI = "' . $uri . '"', __METHOD__);
is_bool($options) and $options = array('route' => $options);
is_string($options) and $options = array('driver' => $options);
if (!empty($options['driver'])) {
$class = \Inflector::words_to_upper('Request_' . $options['driver']);
return $class::forge($uri, $options);
}
$request = new static($uri, isset($options['route']) ? $options['route'] : true);
if (static::$active) {
$request->parent = static::$active;
static::$active->children[] = $request;
}
return $request;
}