magento установить и chmod 777

Поскольку создание объекта вашего подкласса может быть выполнено иначе, чем ваш суперкласс построен. Возможно, вы не захотите, чтобы клиенты подкласса могли вызывать определенные конструкторы, доступные в суперклассе.

Глупый пример:

class Super {
    protected final Number value;
    public Super(Number value){
        this.value = value;
    }
}

class Sub {
    public Sub(){ super(Integer.valueOf(0)); }
    void doSomeStuff(){
        // We know this.value is an Integer, so it's safe to cast.
        doSomethingWithAnInteger((Integer)this.value);
    }
}

// Client code:
Sub s = new Sub(Long.valueOf(666L)): // Devilish invocation of Super constructor!
s.doSomeStuff(); // throws ClassCastException

Или даже проще:

class Super {
    private final String msg;
    Super(String msg){
        if (msg == null) throw new NullPointerException();
        this.msg = msg;
    }
}
class Sub {
    private final String detail;
    Sub(String msg, String detail){
        super(msg);
        if (detail == null) throw new NullPointerException();
        this.detail = detail;
    }
    void print(){
        // detail is never null, so this method won't fail
        System.out.println(detail.concat(": ").concat(msg));
    }
}
// Client code:
Sub s = new Sub("message"); // Calling Super constructor - detail is never initialized!
s.print(); // throws NullPointerException

В этом примере вы видите, что вам нужно каким-то образом объявить что «Я хочу наследовать эти конструкторы» или «Я хочу наследовать все конструкторы, кроме этих», а затем вам также нужно будет указать предпочтение наследования конструктора по умолчанию, если кто-то добавит новый конструктор в суперкласс ... или вы можете просто потребовать повторить конструкторы из суперкласса, если вы хотите «наследовать» их, что, возможно, является более очевидным способом его выполнения.

1
задан mcgrailm 11 August 2010 в 03:11
поделиться

2 ответа

Это зависит от того, что вам нужно сделать с установкой Magento. Если вы хотите использовать Magento Connect Manager, встроенный в интерфейс администратора, вам потребуется разрешение 777. Если вам это не нужно (например, если вы счастливы использовать установщик PEAR из командной строки), тогда только каталоги var /, media / и app / etc / должны быть 777.

1
ответ дан 2 September 2019 в 22:17
поделиться

довольно популярное требование, особенно при запуске php как модуля apache, поскольку php будет запускаться под тем же пользователем, что и веб-сервер (обычно nobody или т.п.). Таким образом, без чмодирования dir world readable/writable, тогда демон apache не сможет записывать в него. Это может быть проблемой безопасности, особенно на общих хостах/серверах. Существуют способы заставить php работать под определенным пользователем, но об этом лучше поговорить на serverfault.com.

1
ответ дан 2 September 2019 в 22:17
поделиться
Другие вопросы по тегам:

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