Laravel 5 ovewrite вспомогательная функция __ (), потому что используется в WordPress - PullRequest
0 голосов
/ 28 июня 2018

Я прочитал несколько постов на stackoverflow, но это не помогло, поэтому я надеюсь, что кто-нибудь может дать хороший ответ.

Я использую Laravel с WordPress. Теперь есть ошибка. Можно ли переименовать или другим способом изменить это?

Ошибка:

Fatal error: Cannot redeclare __() (previously declared in C:app\laravel\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php:821)

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Laravel 5.4 добавил вспомогательную функцию под названием __ () Эта функция имеет то же имя, что и WordPress.

Просто переименуйте Laravel's __ в ___ и запустите «Обновление композитора».

Вы можете найти файл в:

[папка проекта] \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ helpers.php

Проблемная функция в строке 947. Не забудьте также обратить внимание на строку 938.

У меня была точно такая же проблема. Не могу сделать это с помощью решения Баса. Надеюсь, это кому-нибудь поможет.

0 голосов
/ 28 июня 2018

В файле de wp-blog-header.php загружаем перед wp-load.php файл l110n.php

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    // Load the WordPress library.
    require_once( dirname(__FILE__).'/wp-includes/l10n.php' );
    require_once( dirname(__FILE__) . '/wp-load.php' );

    // Set up the WordPress query.
    wp();

    // Load the theme template.
    require_once( ABSPATH . WPINC . '/template-loader.php' );

}

И создайте собственный файл помощников в вашем проекте LARAVEL с помощью этой функции с собственным именем:

if (! function_exists('ownname')) {
    /**
     * Translate the given message.
     *
     * @param  string  $key
     * @param  array  $replace
     * @param  string  $locale
     * @return \Illuminate\Contracts\Translation\Translator|string
     */
    function ownname($key = null, $replace = [], $locale = null)
    {
        return app('translator')->getFromJson($key, $replace, $locale);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...