По умолчанию PHP использует механизм сессии PHP.Этот сеанс настраивается через factories.yml
.Конфигурация по умолчанию выглядит следующим образом:
user:
class: myUser
param:
timeout: 1800
logging: %SF_LOGGING_ENABLED%
use_flash: true
default_culture: %SF_DEFAULT_CULTURE%
Таким образом, по умолчанию сеанс автоматически отключается через 1800 секунд (= 30 минут).
Ваш собственный factories.yml
отменяет значение по умолчаниюfactories.yml
от Symfony (который можно найти в /lib/vendor/symfony/lib/config
).В этом factories
.yml the user factory is defined like above.
So if that configuration is sufficient for you, you don't have to anything. If you want to change the timeout, you can override the appropriate lines in your own
factories.yml . In that case you can add to following lines to your own
factories.yml`:
user:
param:
timeout: 900 # log out after 15 minutes
О, и я действительно настоятельно рекомендую вам не видеть логику в _header.php
.Весь код PHP со структурами if
/ else
должен быть в components.class.php
, а представление te (_header.php
) должно быть только просмотром данных.
Так что-то вроде этого:
Контроллер:
// components.class.php
public function executeHeader() {
// code here...
$this->isAuthenticated = true/false;
}
Вид:
<?php if ($isAuthenticated): ?>
...
<?php enif; ?>
<?php if (!$isAuthenticated): ?>
...
<?php enif; ?>
Гораздо чище, и он отделяет вид от логики ...: -)