Поскольку создание объекта вашего подкласса может быть выполнено иначе, чем ваш суперкласс построен. Возможно, вы не захотите, чтобы клиенты подкласса могли вызывать определенные конструкторы, доступные в суперклассе.
Глупый пример:
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
В этом примере вы видите, что вам нужно каким-то образом объявить что «Я хочу наследовать эти конструкторы» или «Я хочу наследовать все конструкторы, кроме этих», а затем вам также нужно будет указать предпочтение наследования конструктора по умолчанию, если кто-то добавит новый конструктор в суперкласс ... или вы можете просто потребовать повторить конструкторы из суперкласса, если вы хотите «наследовать» их, что, возможно, является более очевидным способом его выполнения.
Это зависит от того, что вам нужно сделать с установкой Magento. Если вы хотите использовать Magento Connect Manager, встроенный в интерфейс администратора, вам потребуется разрешение 777. Если вам это не нужно (например, если вы счастливы использовать установщик PEAR из командной строки), тогда только каталоги var /, media / и app / etc / должны быть 777.
довольно популярное требование, особенно при запуске php как модуля apache, поскольку php будет запускаться под тем же пользователем, что и веб-сервер (обычно nobody или т.п.). Таким образом, без чмодирования dir world readable/writable, тогда демон apache не сможет записывать в него. Это может быть проблемой безопасности, особенно на общих хостах/серверах. Существуют способы заставить php работать под определенным пользователем, но об этом лучше поговорить на serverfault.com.