Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--init auto config detects directories as files #2103

Closed
PurHur opened this issue Sep 6, 2019 · 6 comments
Closed

--init auto config detects directories as files #2103

PurHur opened this issue Sep 6, 2019 · 6 comments

Comments

@PurHur
Copy link

PurHur commented Sep 6, 2019

I followed the basic install process and inited the configuration only with --init.

In the generated xml file it lists all directories as file. Did i miss something?
`
<psalm
totallyTyped="false"
resolveFromConfigFile="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"

<projectFiles>
    <file name="deployment.ini.php" />
    <file name="plugin.php" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="sql" />
    <file name="sql" />
    <file name="sql" />
    <file name="worker_backend" />
    <file name="worker_backend" />
    <file name="ci" />
    <file name="ci" />
    <file name="ci" />
    <file name="ci" />
    <file name="ci" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="classes" />
    <file name="config" />
    <file name="config" />
    <file name="features" />
    <file name="worker_backend" />
    <file name="worker_backend" />
    <ignoreFiles>
        <directory name="vendor" />
    </ignoreFiles>
</projectFiles>

<issueHandlers>
    <LessSpecificReturnType errorLevel="info" />

    <!-- level 3 issues - slightly lazy code writing, but provably low false-negatives -->

    <DeprecatedMethod errorLevel="info" />
    <DeprecatedProperty errorLevel="info" />
    <DeprecatedClass errorLevel="info" />
    <DeprecatedConstant errorLevel="info" />
    <DeprecatedFunction errorLevel="info" />
    <DeprecatedInterface errorLevel="info" />
    <DeprecatedTrait errorLevel="info" />

    <InternalMethod errorLevel="info" />
    <InternalProperty errorLevel="info" />
    <InternalClass errorLevel="info" />

    <MissingClosureReturnType errorLevel="info" />
    <MissingReturnType errorLevel="info" />
    <MissingPropertyType errorLevel="info" />
    <InvalidDocblock errorLevel="info" />
    <MisplacedRequiredParam errorLevel="info" />

    <PropertyNotSetInConstructor errorLevel="info" />
    <MissingConstructor errorLevel="info" />
    <MissingClosureParamType errorLevel="info" />
    <MissingParamType errorLevel="info" />

    <RedundantCondition errorLevel="info" />

    <DocblockTypeContradiction errorLevel="info" />
    <RedundantConditionGivenDocblockType errorLevel="info" />

    <UnresolvableInclude errorLevel="info" />

    <RawObjectIteration errorLevel="info" />

    <InvalidStringClass errorLevel="info" />
</issueHandlers>
`
@muglug
Copy link
Collaborator

muglug commented Sep 7, 2019

what does the autoload portion of your composer.json look like?

@PurHur
Copy link
Author

PurHur commented Sep 8, 2019

There is no composer autoloading present in this project. (It would be PSR4 for classes/core/plugin and so on) It autoloads itself. The composer.json does only include dev depenencies.

Edit: If this is a requirement you can close this issue. I wrote the 5 lines of config myself and it works :)

@muglug
Copy link
Collaborator

muglug commented Sep 8, 2019

What does the layout of your project look like?

@PurHur
Copy link
Author

PurHur commented Sep 9, 2019

Its somewhat mixed/not very ordered/with multiple psr4 "roots".

Here is the current working psalm.xml. Does that help?

<?xml version="1.0"?>
<psalm
    totallyTyped="false"
    resolveFromConfigFile="true"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="https://getpsalm.org/schema/config"
    xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
>
    <projectFiles>
        <file name="deployment.ini.php" />
        <file name="plugin.php" />
        <directory name="classes" />
        <directory name="Core" />
        <directory name="Plugin" />
        <directory name="worker_backend" />
        <ignoreFiles>
            <file name="classes/Service/PHPExcel.php" />
            <directory name="config" />
            <directory name="features" />
            <directory name="sql" />
            <directory name="vendor" />
            <directory name="worker_backend/vendor" />
            <directory name="classes/Lib" />
            <directory name="Plugin/PaymentWirecardHPP/Classes/Lib" />
            <directory name="Plugin/PaymentPaypal/Classes/Lib" />
        </ignoreFiles>
    </projectFiles>

    <issueHandlers>
        <LessSpecificReturnType errorLevel="info" />

        <!-- level 3 issues - slightly lazy code writing, but provably low false-negatives -->

        <DeprecatedMethod errorLevel="info" />
        <DeprecatedProperty errorLevel="info" />
        <DeprecatedClass errorLevel="info" />
        <DeprecatedConstant errorLevel="info" />
        <DeprecatedFunction errorLevel="info" />
        <DeprecatedInterface errorLevel="info" />
        <DeprecatedTrait errorLevel="info" />

        <InternalMethod errorLevel="info" />
        <InternalProperty errorLevel="info" />
        <InternalClass errorLevel="info" />

        <MissingClosureReturnType errorLevel="info" />
        <!--
        Hier kommen noch sehr sehr viele Notices
        <MissingReturnType errorLevel="info" />
        <MissingPropertyType errorLevel="info" />
       -->

        <InvalidDocblock errorLevel="info" />
        <MisplacedRequiredParam errorLevel="info" />

        <PropertyNotSetInConstructor errorLevel="info" />
        <MissingConstructor errorLevel="info" />
        <MissingClosureParamType errorLevel="info" />
        <MissingParamType errorLevel="info" />

        <RedundantCondition errorLevel="info" />

        <DocblockTypeContradiction errorLevel="info" />
        <RedundantConditionGivenDocblockType errorLevel="info" />

        <UnresolvableInclude errorLevel="info" />

        <RawObjectIteration errorLevel="info" />

        <InvalidStringClass errorLevel="info" />
    </issueHandlers>
</psalm>

@hexmode
Copy link
Contributor

hexmode commented Jan 12, 2020

Note that I ran into a similar problem when using psalm --init.

Specifically running psalm after psalm --init put directories where files were expected I got the folllowing error messsages:

Scanning files...
PHP Notice:  file_get_contents(): read of 8192 bytes failed with errno=21 Is a directory in /home/mah/work/code/psalm/src/Psalm/Internal/Provider/FileProvider.php on line 42

Notice: file_get_contents(): read of 8192 bytes failed with errno=21 Is a directory in .../src/Psalm/Internal/Provider/FileProvider.php on line 42
Analyzing files...

IPHP Notice:  file_get_contents(): read of 8192 bytes failed with errno=21 Is a directory in .../src/Psalm/Internal/Provider/FileProvider.php on line 42

Notice: file_get_contents(): read of 8192 bytes failed with errno=21 Is a directory in .../src/Psalm/Internal/Provider/FileProvider.php on line 42

muglug pushed a commit that referenced this issue Jan 12, 2020
…2605)

* bug: #2103 -- throw error if directories are given instead of file

* use global is_dir
@muglug
Copy link
Collaborator

muglug commented Feb 12, 2020

This should be fixed now

@muglug muglug closed this as completed Feb 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants