Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
setProgress example
$total
= 0;
}
$progressBar
=
$io
->
createProgressBar
(
$total
)
;
$io
->
title
(
sprintf
(
'Starting import of size %d ',
$total
)
)
;
$records
= 0;
$progress
=
new
Progress
(
$log
->
getId
(
)
, Progress::STATE_PROGRESS, 0
)
;
do
{
$progress
=
$importExport
->
import
(
Context::
createDefaultContext
(
)
,
$progress
->
getOffset
(
)
)
;
$progressBar
->
setProgress
(
$progress
->
getOffset
(
)
)
;
$records
+=
$progress
->
getProcessedRecords
(
)
;
}
while
(
!
$progress
->
isFinished
(
)
)
;
$elapsed
=
time
(
)
-
$startTime
;
$io
->
newLine
(
2
)
;
if
(
$printErrors
)
{
$this
->
printErrors
(
$importExport
,
$log
,
$io
,
$doRollback
&&
$progress
->
getState
(
)
=== Progress::STATE_FAILED
)
;
}
$this
->
printResults
(
$log
,
$io
)
;
$this
->
assertEquals
(
' 0 [>---------------------------]'.
$this
->
generateOutput
(
' 3 [--->------------------------]'
)
.
$this
->
generateOutput
(
' 5 [----->----------------------]'
)
,
stream_get_contents
(
$output
->
getStream
(
)
)
)
;
}
public
function
testAdvanceOverMax
(
)
{
$bar
=
new
ProgressBar
(
$output
=
$this
->
getOutputStream
(
)
, 10, 0
)
;
$bar
->
setProgress
(
9
)
;
$bar
->
advance
(
)
;
$bar
->
advance
(
)
;
rewind
(
$output
->
getStream
(
)
)
;
$this
->
assertEquals
(
' 9/10 [=========================>--] 90%'.
$this
->
generateOutput
(
' 10/10 [============================] 100%'
)
.
$this
->
generateOutput
(
' 11/11 [============================] 100%'
)
,
stream_get_contents
(
$output
->
getStream
(
)
)
)
;
}
public
function
start
(
int
$max
= null, int
$startAt
= 0
)
: void
{
$this
->startTime =
time
(
)
;
$this
->step =
$startAt
;
$this
->startingStep =
$startAt
;
$startAt
> 0 ?
$this
->
setProgress
(
$startAt
)
:
$this
->percent = 0.0;
if
(
null !==
$max
)
{
$this
->
setMaxSteps
(
$max
)
;
}
$this
->
display
(
)
;
}
/** * Advances the progress output X steps. * * @param int $step Number of steps to advance */
public
function
start
(
int
$max
= null, int
$startAt
= 0
)
: void
{
$this
->startTime =
time
(
)
;
$this
->step =
$startAt
;
$this
->startingStep =
$startAt
;
$startAt
> 0 ?
$this
->
setProgress
(
$startAt
)
:
$this
->percent = 0.0;
if
(
null !==
$max
)
{
$this
->
setMaxSteps
(
$max
)
;
}
$this
->
display
(
)
;
}
/** * Advances the progress output X steps. * * @param int $step Number of steps to advance */
$currentVersion
=
$manager
->
getCurrentVersion
(
)
;
$versions
=
$manager
->
getMigrationsForVersion
(
$currentVersion
)
;
$progress
=
$this
->IOHelper->
createProgressBar
(
\
count
(
$versions
)
)
;
$progress
->
start
(
)
;
$step
=
new
MigrationStep
(
$manager
)
;
$offset
= 0;
do
{
$progress
->
setProgress
(
$offset
)
;
$result
=
$step
->
run
(
$offset
)
;
if
(
$result
instanceof ErrorResult
)
{
throw
new
Exception
(
$result
->
getMessage
(
)
, 0,
$result
->
getException
(
)
)
;
}
$offset
=
$result
->
getOffset
(
)
;
$progress
->
setProgress
(
$offset
)
;
}
while
(
$result
instanceof ValidResult
)
;
$progress
->
finish
(
)
;
$this
->IOHelper->
writeln
(
''
)
;
}