Skip to content

Add quoting and escaping, fix off settings skipped, fix completely wrong diff if multiple .ini loaded#77

Closed
sebastianbergmann wants to merge 4 commits into
8.0from
issue-64/ini-setting-with-special-characters-breaks-parsing
Closed

Add quoting and escaping, fix off settings skipped, fix completely wrong diff if multiple .ini loaded#77
sebastianbergmann wants to merge 4 commits into
8.0from
issue-64/ini-setting-with-special-characters-breaks-parsing

Conversation

@sebastianbergmann
Copy link
Copy Markdown
Owner

@sebastianbergmann sebastianbergmann commented Jan 28, 2026

Closes #64. Supersedes #76.

@sebastianbergmann sebastianbergmann changed the title Closes #64 Add quoting and escaping, fix off settings skipped, fix completely wrong diff if multiple .ini loaded Jan 28, 2026
@sebastianbergmann
Copy link
Copy Markdown
Owner Author

@kkmuffme I have tried my best to add tests, but I keep encountering issues. The whole process is like navigating a minefield of edge cases. I think I am heading in the right direction, but currently I have two failing tests and can't see the wood for the trees. I need someone else to take a fresh look at this; hopefully, I am just missing something small.

I would appreciate it a lot if you, or somebody else, could have a look. Thank you!

@sebastianbergmann
Copy link
Copy Markdown
Owner Author

I really should take a break from this, as I cannot figure out why the dependencies cannot be installed in the GitHub workflow.

Locally, everything is fine:

❯ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD
issue-64/ini-setting-with-special-characters-breaks-parsing
b987d17d2b6b6537fcdf2771427b8ea72b8e9913
❯ ./tools/composer install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Generating optimized autoload files
22 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
❯ ./tools/composer info
myclabs/deep-copy            1.13.4 Create deep copies (clones) of your objects
nikic/php-parser             5.7.0  A PHP parser written in PHP
phar-io/manifest             2.0.4  Component for reading phar.io manifest information from a PHP Archive (PHAR)
phar-io/version              3.2.1  Library for handling version information and constraints
phpunit/php-code-coverage    12.5.2 Library that provides collection, processing, and rendering functionality for PHP code coverage information.
phpunit/php-file-iterator    6.0.0  FilterIterator implementation that filters files based on a list of suffixes.
phpunit/php-invoker          6.0.0  Invoke callables with a timeout
phpunit/php-text-template    5.0.0  Simple template engine.
phpunit/php-timer            8.0.0  Utility class for timing
phpunit/phpunit              12.5.8 The PHP Unit Testing framework.
sebastian/cli-parser         4.2.0  Library for parsing CLI options
sebastian/comparator         7.1.4  Provides the functionality to compare PHP values for equality
sebastian/complexity         5.0.0  Library for calculating the complexity of PHP code units
sebastian/diff               7.0.0  Diff implementation
sebastian/exporter           7.0.2  Provides the functionality to export PHP variables for visualization
sebastian/global-state       8.0.2  Snapshotting of global state
sebastian/lines-of-code      4.0.0  Library for counting the lines of code in PHP source code
sebastian/object-enumerator  7.0.0  Traverses array structures and object graphs to enumerate all referenced objects
sebastian/object-reflector   5.0.0  Allows reflection of object attributes, including inherited and non-public ones
sebastian/recursion-context  7.0.1  Provides functionality to recursively process PHP variables
sebastian/type               6.0.3  Collection of value objects that represent the types of the PHP type system
sebastian/version            6.0.0  Library that helps with managing the version number of Git-hosted PHP projects
staabm/side-effects-detector 1.0.5  A static analysis tool to detect side effects in PHP code
theseer/tokenizer            2.0.1  A small library for converting tokenized PHP source code into XML and potentially other formats

@jrfnl
Copy link
Copy Markdown

jrfnl commented Jan 28, 2026

@sebastianbergmann I believe this might have something to do with the circular dependency of this package being a dependency of PHPUnit and PHPUnit being a dependency for the tests here ?

COMPOSER_ROOT_VERSION: 9.0.x-dev

☝🏻 If this is set to 8.99.x-dev, I believe the composer install should work.

Not quite sure why you are only running into this with this PR and not with main though.... Oh hang on... you probably are, but only just branched off.

@jrfnl
Copy link
Copy Markdown

jrfnl commented Jan 28, 2026

Not sure if I need to spell this out, but just in case (or for others who are wondering re: the branching):

If just running for this branch, things should install fine as this branch is still branched off the 8.0 branch which has that line set to 8.0.x-dev.

The reason it fails is that this PR is set to be merged into the main branch, and the main branch has changed the value to 9.0.x-dev. The PR build always builds against a "test-merge".


Edit: ☝🏻 this may not be completely correct for this repo due to the custom steps in the workflow checking out the code in a different way than GHA does by default.

@sebastianbergmann sebastianbergmann changed the base branch from main to 8.0 January 28, 2026 09:09
@sebastianbergmann
Copy link
Copy Markdown
Owner Author

sebastianbergmann commented Jan 28, 2026

Thank you, @jrfnl. I made the mistake of sending changes mades in a branch that was created off of 8.0 to main instead of to 8.0.

@sebastianbergmann sebastianbergmann deleted the issue-64/ini-setting-with-special-characters-breaks-parsing branch January 28, 2026 12:24
@sebastianbergmann sebastianbergmann restored the issue-64/ini-setting-with-special-characters-breaks-parsing branch January 28, 2026 12:24
@jrfnl
Copy link
Copy Markdown

jrfnl commented Jan 28, 2026

@sebastianbergmann Happy to help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ini setting with special chars breaks parsing

3 participants