Как отказаться от функции в PHP?

У меня была такая же проблема, и я смог изменить файл csv, поэтому я искал символ, например \xc7 в http://www.codetable.net , и заменил его на другой символ в моем файле.

Вы также можете изменить свой тип на utf8 , чтобы он возвращал меньше ошибок.

29
задан Milan Babuškov 11 October 2008 в 14:24
поделиться

6 ответов

Если я правильно понимаю, вы хотите вызвать ошибку при использовании встроенной функции PHP? В этом случае взгляните на функцию Override Function .

16
ответ дан 11 October 2008 в 14:24
поделиться

Если ваши функции являются частью класса, вы можете использовать trigger_error в конструкторе, чтобы предупредить об устаревании.

В качестве альтернативы, если функции находятся в одном файле, то при запуске предупреждения об устаревании в верхней части файла будет отображаться ошибка всякий раз, когда файл включен в другое место.

Наконец, вы можете выдать ошибку в первой строке любой из устаревших функций.

2
ответ дан Codebeef 11 October 2008 в 14:24
поделиться

Я не проверял это сам, но нашел это в своих закладках: http://wiki.php.net/rfc/e-user-deprecated-warning

Изменить: Хорошо, это еще не работает - поэтому вместо E_USER_DEPRECATED просто используйте что-то вроде E_USER_NOTICE:

<?php
class Foo
{   
    public function __construct()
    {
        trigger_error('Use Bar instead', E_USER_NOTICE);
    }
}

$foo = new Foo()

Это закончится этим:

Notice: Use Bar instead in /home/unexist/projects/ingame/svn/foo.php on line 6
6
ответ дан unexist 11 October 2008 в 14:24
поделиться

trigger_error ()

function my_deprecated_function() {
    trigger_error("Deprecated function called.", E_USER_NOTICE);
    // do stuff.
}
43
ответ дан nickf 11 October 2008 в 14:24
поделиться

Вместо того чтобы выдавать предупреждение об использовании во время выполнения, вы можете написать скрипт, который может сканировать вашу кодовую базу на предмет использования этой функции, а затем сгенерировать отчет о нарушающем коде. Время от времени, пропустите это.

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

2
ответ дан troelskn 11 October 2008 в 14:24
поделиться

Вообще говоря, вы можете пометить метод как устаревший, чтобы предупредить пользователей о коде, который не будет работать в будущих версиях. Я думаю, что лучше всего использовать trigger_error вместе с некоторым phpdoc .

/**
 * @deprecated
 *
 * @return $this
 */
public function oldMethod()
{
    trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);

    return $this;
}

phpdoc @deprecated важен, потому что многие IDE, такие как PHPStorm , распознают его и вводят имя метода, если вы пытаетесь его использовать, поэтому вы замечаете, что он устарел, прежде чем фактически запускать ваш код.

Это будет выглядеть примерно так:

jetbrains deprecated strikethrough

Помимо phpdoc, вы можете убедиться, что пользователь получит предупреждение, вызвав правильная ошибка во время выполнения. Просто убедитесь, что вы используете правильную константу (т. Е. E_USER_DEPRECATED).

E_DEPRECATED вместо этого используется внутри PHP, поэтому вы не должны его использовать. Больше информации здесь .

20
ответ дан Francesco Casula 11 October 2008 в 14:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: