Browse Source

Fixing bugs.

Taylor Otwell 12 years ago
parent
commit
a92ab1ca30
5 changed files with 42 additions and 24 deletions
  1. 14 2
      laravel/cache/drivers/driver.php
  2. 3 12
      laravel/cli/artisan.php
  3. 1 9
      laravel/core.php
  4. 4 1
      laravel/database/schema.php
  5. 20 0
      laravel/helpers.php

+ 14 - 2
laravel/cache/drivers/driver.php

@@ -69,15 +69,27 @@ abstract class Driver {
 	 * @param  int     $minutes
 	 * @return mixed
 	 */
-	public function remember($key, $default, $minutes)
+	public function remember($key, $default, $minutes, $function = 'put')
 	{
 		if ( ! is_null($item = $this->get($key, null))) return $item;
 
-		$this->put($key, $default = value($default), $minutes);
+		$this->$function($key, $default = value($default), $minutes);
 
 		return $default;
 	}
 
+	/**
+	 * Get an item from the cache, or cache the default value forever.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return mixed
+	 */
+	public function sear($key, $default)
+	{
+		return $this->remember($key, $default, null, 'forever');
+	}
+
 	/**
 	 * Delete an item from the cache.
 	 *

+ 3 - 12
laravel/cli/artisan.php

@@ -16,21 +16,12 @@ Bundle::start(DEFAULT_BUNDLE);
  * for the "database" CLI option. This allows migrations to be run
  * conveniently for a test or staging database.
  */
-if (isset($_SERVER['CLI']['DB']))
+
+if ( ! is_null($database = get_cli_option('db')))
 {
-	Config::set('database.default', $_SERVER['CLI']['DB']);
+	Config::set('database.default', $database);
 }
 
-/**
- * Overwrite the HttpFoundation request since we have set some of
- * the server variables since it was created. This allows us to
- * set the default database for the CLI task.
- */
-
-use Symfony\Component\HttpFoundation\LaravelRequest as RequestFoundation;
-
-Request::$foundation = RequestFoundation::createFromGlobals();
-
 /**
  * We will register all of the Laravel provided tasks inside the IoC
  * container so they can be resolved by the task class. This allows

+ 1 - 9
laravel/core.php

@@ -156,15 +156,7 @@ Request::$foundation = RequestFoundation::createFromGlobals();
 
 if (Request::cli())
 {
-	foreach (Request::foundation()->server->get('argv') as $argument)
-	{
-		if (starts_with($argument, '--env='))
-		{
-			$environment = substr($argument, 6);
-
-			break;
-		}
-	}
+	$environment = get_cli_option('env');
 }
 else
 {

+ 4 - 1
laravel/database/schema.php

@@ -44,12 +44,15 @@ class Schema {
 	 * Drop a database table from the schema.
 	 *
 	 * @param  string  $table
+	 * @param  string  $connection
 	 * @return void
 	 */
-	public static function drop($table)
+	public static function drop($table, $connection = null)
 	{
 		$table = new Schema\Table($table);
 
+		$table->on($connection);
+
 		// To indicate that the table needs to be dropped, we will run the
 		// "drop" command on the table instance and pass the instance to
 		// the execute method as calling a Closure isn't needed.

+ 20 - 0
laravel/helpers.php

@@ -504,4 +504,24 @@ function render_each($partial, array $data, $iterator, $empty = 'raw|')
 function yield($section)
 {
 	return Laravel\Section::yield($section);
+}
+
+/**
+ * Get a CLI option from the argv $_SERVER variable.
+ *
+ * @param  string  $option
+ * @param  mixed   $default
+ * @return string
+ */
+function get_cli_option($option, $default = null)
+{
+	foreach (Laravel\Request::foundation()->server->get('argv') as $argument)
+	{
+		if (starts_with($argument, "--{$option}="))
+		{
+			return substr($argument, strlen($option) + 3);
+		}
+	}
+
+	return value($default);
 }