Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.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
OOP PHP-从扩展类调用方法,而不必为其放置类_Php_Laravel_Oop - Fatal编程技术网

OOP PHP-从扩展类调用方法,而不必为其放置类

OOP PHP-从扩展类调用方法,而不必为其放置类,php,laravel,oop,Php,Laravel,Oop,我在文件中有一个类,如: class foo { public function something() { return "something" } } 然后在另一个文件中,我有一个类,如: class bar extends foo { } 现在我想调用something方法。 我可以像这样做foo::something(),但我只想做一些事()。就像在拉雷维尔一样 当然,我可以要求foo所在的文件,但我不想这样,因为我觉得那有点脏 那么,我该怎

我在文件中有一个类,如:

class foo
{
    public function something()
    {
        return "something"
    }
}
然后在另一个文件中,我有一个类,如:

class bar extends foo
{

}
现在我想调用something方法。 我可以像这样做
foo::something(),但我只想做一些事()
。就像在拉雷维尔一样

当然,我可以
要求
foo
所在的文件,但我不想这样,因为我觉得那有点脏

那么,我该怎么做呢? 我在互联网上四处寻找,但没有找到答案。我发现的所有东西都是5-7年前的

编辑:

看,您只需返回
view()

没有
self::
this->

我想知道你是怎么做到的香草PHP

public function index()
{

    $categories = Category::categories();
    $posts = Post::latest()->get();

    return view('welcome', compact('posts', 'categories'));
}

这些函数称为全局帮助器。你可以。Helper可以是某些类方法或simle函数的包装器:

if (! function_exists('customHelper')) {
    function customHelper()
    {
        return 'Something';
    }
}
要使自定义助手文件正常工作,请将其添加到应用程序的
composer.json
的自动加载部分,然后运行
composer dumpauto
命令一次:

"autoload": {
    ....
    "files": [
        "app/someFolder/helpers.php"
    ]
},

只是
something()对于像view()或redirect()这样的方法,在Laravel?中做什么?对于
bar
,要扩展
foo
,必须包括
foo
类。然后只要
$this->something()
自我::某物()@u_mulder调用方法。您可以在没有self::或$this->的情况下调用laravel中的方法。就像你调用函数一样。我也想这样做。好的,谢谢你的回答,但是,我想你误解了我,或者我的问题不清楚,但我想用香草php来做。@LuukWuijster它是香草php。)这些只是全局函数。