Don't you speak portuguese? Translate this site with Google Translator

Pensamento do Dia

Um livro é um mudo que fala, um surdo que responde, um cego que guia, um morto que vive. (Padre António Vieira)

14.3 - Trabalhando com session no CakePHP

14.3 - Trabalhando com session no CakePHP


Nossa maior fraqueza está em desistir. A maneira certa de ter sucesso é tentar apenas mais uma vez. (Thomas Edison)


Mudando o session de php para database

Primeiro configurar em config/app.php

Ao final:

    'Session' => [
        'defaults' => 'php',
    ],

Mudar para

    'Session' => [
        'defaults' => 'database',
    ],

Veja que as alternativas são:

     * - 'php' - Uses settings defined in your php.ini.
     * - 'cake' - Saves session files in CakePHP's /tmp directory.
     * - 'database' - Uses CakePHP's database sessions.
     * - 'cache' - Use the Cache class to save sessions.

E existem várias opções:

     * - `cookie` - The name of the cookie to use. Defaults to 'CAKEPHP'. Avoid using `.` in cookie names,
     *   as PHP will drop sessions from cookies with `.` in the name.
     * - `cookiePath` - The url path for which session cookie is set. Maps to the
     *   `session.cookie_path` php.ini config. Defaults to base path of app.
     * - `timeout` - The time in minutes the session should be valid for.
     *    Pass 0 to disable checking timeout.
     *    Please note that php.ini's session.gc_maxlifetime must be equal to or greater
     *    than the largest Session['timeout'] in all served websites for it to have the
     *    desired effect.
     * - `defaults` - The default configuration set to use as a basis for your session.
     *    There are four built-in options: php, cake, cache, database.
     * - `handler` - Can be used to enable a custom session handler. Expects an
     *    array with at least the `engine` key, being the name of the Session engine
     *    class to use for managing the session. CakePHP bundles the `CacheSession`
     *    and `DatabaseSession` engines.
     * - `ini` - An associative array of additional ini values to set.


Exemplo:

'Session' => [
    'defaults' => 'php',
    'timeout' => 12 * 60, //in minutes
    'cookie' => 'application-name',
],

Configurar por quanto tempo o usuário ficará conectado no aplicativo.

Em config/app.php:

 'Session' => [
    'defaults' => 'php',
    'timeout'=>24*60, //minutos, que dá 24horas
    'cookie' => 'CAKEPHP',
],

Sempre que alterar o cache limpe o cache e arquivos temporários.

Após efetuar as alterações immporte o script de:

config/schema/session.sql para seu banco de dados


Algumas funções nativas e globais do CakePHP 3

__(string $string_id[, $formatArgs]) - Manipula localizações nas aplicações do CakePHP. Usada por padrão nas views geradas pelo bake para mostrar strings. Exemplo:
<?= __('Ações') ?>

debug(mixed $var, boolean $showHtml = null, $showFrom = true)

dd(mixed $var, boolean $showHtml = null) - semelhante a debug() mas também encerra o processamento ao final

pr(mixed $var) - Encapsula print_r(), com a adição de tags <pre> ao redor da saída.

pj(mixed $var) - semelhante a pr() mas para saída em json

h(string $text, boolean $double = true, string $charset = null) - Encapsulamento da função htmlspecialchars(). Importante nas views. Usar h() quando mosrando informações para prevenir problemas de HTML injection.



Algumas Constantes do Core

APP - Path para o diretório da aplicação. Retorna /var/www/html/nomeApp/src
CAKE - path do diretório dos arquivos do Cake. No caso este: vendor/cakephp/cakephp/src/
CORE_PATH - Path para este diretório: vendor/cakephp/cakephp/, com a barra final
DS - Retorna a barra "/"
ROOT - Retorna /var/www/html/nomeApp
TMP -  Retorna /var/www/html/nomeApp/tmp/
VENDORS - Retorna /var/www/html/nomeApp/config/
WWW_ROOT - Retorna /var/www/html/nomeApp/webroot/

TIME_START -  Unix timestamp em microsegundoss como um float desde que a aplicação iniciou.

SECOND - 1
MINUTE - 60
HOUR - 3600
DAY
WEEK
MONTH
YEAR - 31536000 (segundos)

Mais detalhes em:
https://book.cakephp.org/3.0/en/core-libraries/global-constants-and-functions.html 

Exemplo de uso:

Em um controller, adicione a linha abaixo no action/método index()

dd(TIME_START);


Enviar informações do controller para uma view:

$this->set('valores', $valores);

Enviar informações da view para o controller

Na view search.tcp:

   $this->Form->create('Model', array('type' => 'get', 'action' => 'search'));
   $this->Form->input('select_tfield_id', array('type' => 'select'));
   $this->Form->input('value'));
   $this->Form->end('submit');

No controller:
   function search() {
       $url = $this->params['url'];
       $id = $url['select_tfield_id'];
       $value = $url['value'];
   }

Comments fornecido por CComment

Novo Testamento

E, havendo dito isto, pôs-se de joelhos, e orou com todos eles.
(At, 20:36)

Rotas no Mapa do Google

© 2015 Ribamar FS. All Rights Reserved. Designed By JoomShaper