AOEpeople / mpmd

Magento Project Mess Detector (for n98-magerun)
181 stars 26 forks source link

dependencycheck: Expected token "T_STRING", got token "T_VARIABLE" #9

Open steverobbins opened 9 years ago

steverobbins commented 9 years ago

I'm getting this error when trying to run the dependency check:

magerun -vvv mpmd:dependencycheck  -m app/code/local/SDM/*/
Load dist config
Search for Magento in folder /Users/steverobbins/html/ellison
Found Magento in folder /Users/steverobbins/html/ellison
Load plugin config /Users/steverobbins/.n98-magerun/modules/magerun-addons/n98-magerun.yaml
Load plugin config /Users/steverobbins/.n98-magerun/modules/mpmd/n98-magerun.yaml
DEBUG
T_DOUBLE_ARROW: =>
T_WHITESPACE:  
T_VARIABLE: $visibility
==> T_DOUBLE_COLON: ::
T_STRING: VISIBILITY_NOT_VISIBLE
): )
T_WHITESPACE: 

): )
T_WHITESPACE: 

T_OBJECT_OPERATOR: ->
T_STRING: setPageSize
(: (
T_LNUMBER: 200

  [Exception]                                        
  Expected token "T_STRING", got token "T_VARIABLE"  

Exception trace:
 () at /Users/steverobbins/.n98-magerun/modules/mpmd/src/Mpmd/DependencyChecker/Parser/Tokenizer.php:79
 Mpmd\DependencyChecker\Parser\Tokenizer->assertToken() at /Users/steverobbins/.n98-magerun/modules/mpmd/src/Mpmd/DependencyChecker/Parser/Tokenizer/Handler/StaticCalls.php:15
 Mpmd\DependencyChecker\Parser\Tokenizer\Handler\StaticCalls->handle() at /Users/steverobbins/.n98-magerun/modules/mpmd/src/Mpmd/DependencyChecker/Parser/Tokenizer.php:41
 Mpmd\DependencyChecker\Parser\Tokenizer->parse() at /Users/steverobbins/.n98-magerun/modules/mpmd/src/Mpmd/Magento/DependencyCheckCommand.php:65
 Mpmd\Magento\DependencyCheckCommand->collectData() at /Users/steverobbins/.n98-magerun/modules/mpmd/src/Mpmd/Magento/DependencyCheckCommand.php:124
 Mpmd\Magento\DependencyCheckCommand->execute() at /Users/steverobbins/Project/n98-magerun/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
 Symfony\Component\Console\Command\Command->run() at /Users/steverobbins/Project/n98-magerun/src/N98/Magento/Command/AbstractMagentoCommand.php:448
 N98\Magento\Command\AbstractMagentoCommand->run() at /Users/steverobbins/Project/n98-magerun/vendor/symfony/console/Symfony/Component/Console/Application.php:882
 Symfony\Component\Console\Application->doRunCommand() at /Users/steverobbins/Project/n98-magerun/vendor/symfony/console/Symfony/Component/Console/Application.php:195
 Symfony\Component\Console\Application->doRun() at /Users/steverobbins/Project/n98-magerun/src/N98/Magento/Application.php:586
 N98\Magento\Application->doRun() at /Users/steverobbins/Project/n98-magerun/vendor/symfony/console/Symfony/Component/Console/Application.php:126
 Symfony\Component\Console\Application->run() at /Users/steverobbins/Project/n98-magerun/src/N98/Magento/Application.php:646
 N98\Magento\Application->run() at /Users/steverobbins/Project/n98-magerun/bin/n98-magerun:5

I'm not sure if it's an issue with my module or with the checker, but I don't know what to do next. If I comment out the throw it seems to run fine.

steverobbins commented 9 years ago

I ran into issues generating graphs as well, for instance during mpmd:dependencycheck:graph:class I would see

    SDM_Catalog_Model_Observer -> $visibility [style="dotted"];
    SDM_Catalog_Model_Observer -> $collection [style="dotted"];

Which caused syntax errors in dot.

It looks like this is the issue

$visibility = Mage::getModel('catalog/product_visibility');
// ...
->addAttributeToFilter(
    'visibility',
    array('eq' => $visibility::VISIBILITY_NOT_VISIBLE)
)

Given that you can access constants from a variable I think this is an issue with mpmd.