# Zend_Application

`Zend_Application` fornece a base da funcionalidade do componente, é o ponto de entrada para sua aplicação Zend Framework. Seu propósito duplo: definir o ambiente PHP (incluindo autocarregamento) e para executar a inicialização da aplicação.

Tipicamenteo, você passará todas as configurações ao construtor de `Zend_Application`, mas você também pode configurar inteiramente o objeto usando seus próprios métodos. Esta referência é voltada a ilustrar ambos os casos.

## Opções de Zend_Application

Opção | Descrição
--- | ---
phpSettings | Matriz de opções `php.ini` para utilizar. Chaves devem devem ser as mesmas do `php.ini`.
includePaths | Caminhos adicionais para acrescentar ao include_path. Deve ser uma matriz de caminhos.
autoloaderNamespaces | Matriz de espaços de nomes adicionais para registrar com a instância de `Zend_Loader_Autoloader`.
bootstrap | Pode ser tanto uma sequência de caracteres (string) para o caminho da classe de inicialização, ou uma matriz com elementos 'path' e 'class' (caminho e classe, respectivamente) para a inicialização da aplicação.

## Nomes das opções

Tenha em mente que os nomes das opções são insensíveis ao caso.

## Métodos Zend_Application

Método | Valor de Retorno | Parameteros | Descrição
--- | --- | --- | ---

`__construct($environment, $options = null)`

Void

- `$environment`: obrigatória,. Sequência de caracteres representando o ambiente da aplicação atual. Sequências típicas podem incluir "development", "testing", "qa" ou "production" mas serão definidas por seus requisitos organizacionais.

- `$options`: opcional. O argumento pode ser um dos seguintes valores:

  - String: caminho para um arquivo `Zend_Config` a ser carregado como configuração de sua aplicação. `$environment` será utilizada para determinar qual seção da configuração carregar.

    As of 1.10, you may also pass multiple paths containing config files to be merged into a single configuration. This assists in reducing config duplication across many contexts which share common settings (e.g. configs for HTTP, or CLI, each sharing some characteristics but with their own conflicting values for others) or merely splitting a long configuration across many smaller categorised files. The parameter in this case is an array with a single key "config" whose value is an array of the files to merge. Note: this means you either pass a literal path, or `array("config"=>array("/path1","/path2"[,...]));` .

  - Array: associative array of configuration data for your application.

  - `Zend_Config`: configuration object instance.

Constructor. Arguments are as described, and will be used to set initial object state. An instance of `Zend_Loader_Autoloader` is registered during instantiation. Options passed to the constructor are passed to `setOptions()`.

`getEnvironment()` | String | N/A | Retrieve the environment string passed to the constructor.
`getAutoloader()` | `Zend_Loader_Autoloader` | N/A | Retrieve the `Zend_Loader_Autoloader` instance registered during instantiation.

`setOptions(array $options)`

`Zend_Application`

- `$options`: required. An array of application options.

All options are stored internally, and calling the method multiple times will merge options. Options matching the various setter methods will be passed to those methods. As an example, the option "phpSettings" will then be passed to `setPhpSettings()`. (Option names are case insensitive.)

`getOptions()` | Array | N/A | Retrieve all options used to initialize the object; could be used to cache `Zend_Config` options to a serialized format between requests.

`hasOption($key)`

Boolean

- `$key`: String option key to lookup

Determine whether or not an option with the specified key has been registered. Keys are case insensitive.

`getOption($key)`

Mixed

- `$key`: String option key to lookup

Retrieve the option value of a given key. Returns `NULL` if the key does not exist.

`setPhpSettings(array $settings, $prefix = '')`

`Zend_Application`

- `$settings`: required. Associative array of PHP INI settings.

- `$prefix`: optional. String prefix with which to prepend option keys. Used internally to allow mapping nested arrays to dot-separated `php.ini` keys. In normal usage, this argument should never be passed by a user.

Set run-time `php.ini` settings. Dot-separated settings may be nested hierarchically (which may occur with INI `Zend_Config` files) via an array-of-arrays, and will still resolve correctly.

`setAutoloaderNamespaces(array $namespaces)`

`Zend_Application`

- `$namespaces`: required. Array of strings representing the namespaces to register with the `Zend_Loader_Autoloader` instance.

Register namespaces with the `Zend_Loader_Autoloader` instance.

`setBootstrap($path, $class = null)`

`Zend_Application`

- `$path`: required. May be either a `Zend_Application_Bootstrap_Bootstrapper` instance, a string path to the bootstrap class, an associative array of classname => filename, or an associative array with the keys 'class' and 'path'.

- `$class`: optional. If `$path` is a string, `$class` may be specified, and should be a string class name of the class contained in the file represented by path.

`getBootstrap()` | `NULL` | `Zend_Application_Bootstrap_Bootstrapper` | N/A | Retrieve the registered bootstrap instance.
`bootstrap()` | Void | N/A | Call the bootstrap's `bootstrap()` method to bootstrap the application.
`run()` | Void | N/A | Call the bootstrap's `run()` method to dispatch the application.