Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这个代码是什么意思。。。?_Php_Mysql_Oop_Laravel_Static Functions - Fatal编程技术网

Php 这个代码是什么意思。。。?

Php 这个代码是什么意思。。。?,php,mysql,oop,laravel,static-functions,Php,Mysql,Oop,Laravel,Static Functions,我想为我提出这个问题。为了更好地理解PHP和Laravel public function up() { Schema::create('tasks', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->timestamps(); }); } 这实际上是一个包含静态函数的方法?在这个静态函

我想为我提出这个问题。为了更好地理解PHPLaravel

public function up()
{
    Schema::create('tasks', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->timestamps();
    });
}
这实际上是一个包含静态函数的方法?在这个静态函数中还有一个。。。?我不得不说我是框架的初学者


这是我第一次玩它。

它创建了一个表
tasks
,其中
id
as
auto increment
列、
name
as
varchar
列和
created_at
updated_at
as
timestamp


更多信息。

它创建了一个表
tasks
,其中
id
作为
auto increment
列,
name
作为
varchar
列和
创建时和
更新时作为
时间戳


更多信息。

如果你的困惑更多的是关于代码是如何工作的,而不是它是做什么的,那么它实际上是一个相当复杂的主题。首先,它不是一个真正的静态方法

Laravel使用某种调用,允许您“静态”调用方法,这可能会让刚接触框架的人感到困惑。简而言之,facades非常方便,因为当您使用Laravel的facade调用方法时,它会为您“屏蔽”大量实例对象,然后调用该方法

让我们以本例中的
Schema
为例。这个
Schema
类在哪里?如果查看
config/app.php
文件,您将在别名下看到这行代码:

'Schema'    => Illuminate\Support\Facades\Schema::class,
因此,
Schema
illumb\Support\Facades\Schema
的别名

因此,如果您查看
illumb\Support\Facades\Schema
,您将看到它
扩展了Facade
。这是拉威尔的一个正面。这个目录有很多拉威尔的正面。无论如何,在本课程的顶部,您还将看到一条方便的注释,上面写道:

@see \Illuminate\Database\Schema\Builder
打开该文件,这是您的
模式
类。在幕后,Laravel为您实例化此对象。这有什么大不了的?看看构造函数。此类的依赖项之一是
illumb\Database\Connection
。打开这个类,它会有更多的依赖项。facades不必一直手动实例化所有这些类,而是为您完成这项工作。因此,当您执行
Schema::create(…
)时,Laravel正在实例化所有这些依赖项,并在
illighted\Database\Schema\Builder
类中调用
create
方法。非常棒,对吧?如果您查看该文件,您将看到该方法:

/**
 * Create a new table on the schema.
 *
 * @param  string    $table
 * @param  \Closure  $callback
 * @return \Illuminate\Database\Schema\Blueprint
 */
public function create($table, Closure $callback)
{
    $blueprint = $this->createBlueprint($table);

    $blueprint->create();

    $callback($blueprint);

    $this->build($blueprint);
}
您可以看到它不是一个静态方法,而是。Laravel正在幕后创建一个新实例,然后调用该方法


第一个参数接受一个字符串,它将是您正在创建的表的名称。然后它接受一个闭包。在本例中,正如@Kostas Mitsarakis所说,您正在创建一个名为
tasks
的表。这个表有一个名为
id
的自动递增列,等等。

如果您对代码如何运行感到困惑的话rks而不是它所做的,它实际上是一个相当复杂的主题。首先,它不是一个真正的静态方法

Laravel使用的调用允许您“静态”调用方法,这可能会让刚接触框架的人感到困惑。简而言之,facades非常方便,因为当您使用Laravel的facade调用方法时,它会为您“屏蔽”大量实例对象,然后调用该方法

以本例中的
Schema
为例。这个
Schema
类在哪里?如果查看
config/app.php
文件,您将在别名下看到这行代码:

'Schema'    => Illuminate\Support\Facades\Schema::class,
因此,
Schema
illumb\Support\Facades\Schema
的别名

因此,如果你看一下
illumb\Support\Facades\Schema
,你会发现它
扩展了Facade
。它是Laravel的一个Facade。这个目录有很多Laravel的Facade。无论如何,在这个类的顶部,你还会看到一个方便的注释,上面写着:

@see \Illuminate\Database\Schema\Builder
打开该文件,这是您的
模式
类。在幕后,Laravel为您实例化了该对象。为什么这有这么大的意义?看看构造函数。该类的一个依赖项是
illighte\Database\Connection
。打开该类,它甚至有更多的依赖项。不必手动始终联合实例化所有这些类,facades为您完成工作(…
,Laravel正在实例化所有这些依赖项,并在
illumb\Database\Schema\Builder
类中调用
create
方法。非常棒,对吧?如果您查看该文件,您将看到该方法:

/**
 * Create a new table on the schema.
 *
 * @param  string    $table
 * @param  \Closure  $callback
 * @return \Illuminate\Database\Schema\Blueprint
 */
public function create($table, Closure $callback)
{
    $blueprint = $this->createBlueprint($table);

    $blueprint->create();

    $callback($blueprint);

    $this->build($blueprint);
}
您可以看到它不是一个静态方法,而是。Laravel正在幕后创建一个新实例,然后调用该方法


第一个参数接受一个字符串,它将是您正在创建的表的名称。然后它接受一个闭包。在这种情况下,正如@Kostas Mitsarakis所说,您正在创建一个名为
tasks
的表。这个表有一个名为
id
的自动递增列,等等。

up()
触发一个“新模式”-其中我假设模式是Laraval中的组件或模型(从未使用过)。该调用中的函数是-用于告诉
Schema::create
它应该如何处理其处理结果。还要注意,
create
Schema
类的一部分。
up()
触发“新模式”-其中我假设模式是Laraval中的组件或模型(从未使用过)。该调用中的函数是-用于告诉
Schema::create
它应该如何处理其处理结果。还请注意
create