| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | <?php namespace Laravel\CLI\Tasks\Session;use Laravel\IoC;use Laravel\File;use Laravel\Config;use Laravel\Session;use Laravel\CLI\Tasks\Task;use Laravel\Database\Schema;use Laravel\Session\Drivers\Sweeper;use Laravel\CLI\Tasks\Migrate\Migrator;class Manager extends Task {	/**	 * Generate the session table on the database.	 *	 * @param  array  $arguments	 * @return void	 */	public function table($arguments = array())	{		$migrator = IoC::resolve('task: migrate');		$key = IoC::resolve('task: key');		// Since sessions can't work without an application key, we will go		// ahead and set the key if one has not already been set for the		// application so the developer doesn't need to set it.		$key->generate();		// To create the session table, we will actually create a database		// migration and then run it. This allows the application to stay		// portable through migrations while still having a session table		// generated on the database.		$migration = $migrator->make(array('create_session_table'));		$stub = path('sys').'cli/tasks/session/migration'.EXT;		File::put($migration, File::get($stub));		// By default no session driver is specified in the configuration.		// Since the developer is requesting that the session table be		// created on the database, we'll set the driver to database		// to save an extra step for the developer.		$config = File::get(path('app').'config/session'.EXT);		$config = str_replace(			"'driver' => '',",			"'driver' => 'database',",			$config		);		File::put(path('app').'config/session'.EXT, $config);		echo PHP_EOL;		$migrator->run();	}	/**	 * Sweep the expired sessions from storage.	 *	 * @param  array  $arguments	 * @return void	 */	public function sweep($arguments = array())	{		$driver = Session::factory(Config::get('session.driver'));		// If the driver implements the "Sweeper" interface, we know that		// it can sweep expired sessions from storage. Not all drivers		// need be sweepers since they do their own.		if ($driver instanceof Sweeper)		{			$lifetime = Config::get('session.lifetime');			$driver->sweep(time() - ($lifetime * 60));		}		echo "The session table has been swept!";	}}
 |