$product = new $this->product($v['id'], $v['name'], $v['price']); // тут явная лажа с объявлением
$data[] = $product; // а тут явно лишний шаг, это можно было сделать строкой выше
4) new $this->product это вообще как??? У вас там не строка вроде, а объект... 2) шифровать имена файлов внутри архива?
2) шифровать имена файлов внутри архива?
If archive headers are not encrypted (“encrypt file names” option is disabled), file checksums for encrypted RAR 5.0 files are modified using a special password dependent algorithm. This prevents third parties from guessing file contents based on checksums.
What is the "Encrypt File Names" Option?https://www.win-rar.com/encryption-faq.html?&L=0
If you set the "Encrypt file names" option, WinRAR will not only encrypt the file data, but all other sensitive archive areas like file names, sizes, attributes, comments and other blocks. This provides a higher level of security.
If you want to prevent third parties from drawing conclusions about the content of the archives based on the meta files, you should enable this function. Without entering the correct password, it is impossible to even view the list of files that have been encrypted.
class FirstException extend ModuleException {}
class SecondException extend ModuleException {}
class ModuleFirst
{
public function work()
{
throw new FirstException('first);
}
}
class ModuleSecond
{
public function work()
{
throw new SecondException('second);
}
}
try {
$module->work();
} catch(ModuleException $e) {
// обработка
}
class FirstException {}
class SecondException {}
class ModuleFirst
{
public function work()
{
try {
$module2->work();
} catch(SecondException $e) {
throw new FirstException($e->getMessage, 0, $e);
}
}
}
class ModuleSecond
{
public function work()
{
throw new SecondException('second);
}
}
try {
$module1->work();
} catch(FirstException $e) {
// обработка
}