Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
createBackupFile example
$destination
=
$this
->pluginDir;
if
(
!
is_writable
(
$destination
)
)
{
throw
new
Exception
(
sprintf
(
'Destination directory "%s" is not writable',
$destination
)
)
;
}
$prefix
=
$this
->
getPluginPrefix
(
$archive
)
;
$this
->
validatePluginZip
(
$prefix
,
$archive
)
;
$this
->
validatePluginRequirements
(
$prefix
,
$archive
)
;
$oldFile
=
$this
->
findOldFile
(
$prefix
)
;
$backupFile
=
$this
->
createBackupFile
(
$oldFile
)
;
try
{
$archive
->
extractTo
(
$destination
)
;
if
(
$backupFile
!== false
)
{
$this
->filesystem->
remove
(
$backupFile
)
;
}
unlink
(
$archive
->filename
)
;
}
catch
(
Exception
$e
)
{
if
(
$oldFile
!== false
)
{
$destination
=
$this
->extensionDirectories
[
$type
]
;
if
(
!
is_writable
(
$destination
)
)
{
throw
new
PluginExtractionException
(
sprintf
(
'Destination directory "%s" is not writable',
$destination
)
)
;
}
$pluginName
=
$this
->
getPluginName
(
$archive
)
;
$this
->
validatePluginZip
(
$pluginName
,
$archive
)
;
$oldFile
=
$this
->
findOldFile
(
$destination
,
$pluginName
)
;
$backupFile
=
$this
->
createBackupFile
(
$oldFile
)
;
try
{
$archive
->
extractTo
(
$destination
)
;
if
(
$backupFile
!== null
)
{
$this
->filesystem->
remove
(
$backupFile
)
;
}
if
(
$delete
)
{
unlink
(
$archive
->filename
)
;
}
}