Comments (4)
I just stumbled over this thread and solved it in that way:
$ php -n -dextension=phar.so -dextension=json.so -dextension=mbstring.so $(which wp) i18n make-pot [...]
I use php
bin to execute wp
bin so I can pass additional parameters like -n
which disables all extension (see this). With dextension
I can enable all extensions needed for i18n make-pot
.
This also brings a huge performance improvement, here a benchmark of my WSL Ubuntu machine:
With the previous mentioned solution of @schlessera and @brenoalvs it takes about 41.42s:
$ php -d xdebug.max_nesting_level=512 $(which wp) i18n make-pot [...]
Success: POT file successfully generated!
Done in 41.42s.
And with all extensions disabled expect required ones it takes 4.42s!!
$ php -n -dextension=phar.so -dextension=json.so -dextension=mbstring.so $(which wp) i18n make-pot [...]
Success: POT file successfully generated!
Done in 4.42s.
from i18n-command.
@westonruter This is a limitation to recursion that xdebug
sets into place, regular PHP without an extension doesn't have such a limit.
This limit is normally set to 256. In your case it is 100, because you are using an older version of xdebug
as well (< 2.3).
You can set this limit manually using the xdebug.max_nesting_level
setting.
I don't see how we could get around this from within WP-CLI, but we might want to add this to our list of common issues.
from i18n-command.
@westonruter @schlessera I was working with Docker locally so I had to change two settings to be able to run the command within my container. But the command works fine if I run it directly from my machine.
memory_limit = 512M
xdebug.max_nesting_level = 512
The settings values may be a little exorbitant, but I think they're safe for development environments.
I hope it helps someone.
from i18n-command.
Running this on CircleCI also throws the Maximum function nesting level
error.
The following will disable xdebug in a CircleCI job:
- run:
name: Disable xdebug PHP extension
command: sudo rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
from i18n-command.
Related Issues (20)
- make-pot failing to parse specific JavaScript code HOT 8
- Missing file name and line numbers in POT file HOT 8
- PHP 8.2 - PHP Deprecated: Use of "static" in callables is deprecated in ...i18n-command/src/IterableCodeExtractor.php on line 245/246
- update-po: Doesn't preserve / create X-Domain header of .pot file HOT 3
- sokirka HOT 1
- PHP Warning: mkdir(): Read-only file system in MakePotCommand.php on line 376 HOT 6
- `make-mo`: Add option to specify filename HOT 8
- Add tests verifying generated translation files work as intended
- PHP Warning: foreach() argument must be of type array|object, HOT 3
- Consider adding file reference for strings extracted from file headers
- Document example of how to format the --headers parameter in the `i18n make-pot` command HOT 1
- Are file references for plugin/theme headers supposed to be absolute paths? HOT 1
- wp i18n make-php - Expectations HOT 2
- wp i18n make-pot: Support PHP8 named parameters HOT 1
- Author URI of the plugin translation string in generated POT file HOT 3
- Issues parsing PO files without empty lines HOT 15
- make-php - Make output file content pretty HOT 2
- Incorrect POT license info for themes without a license in the header HOT 1
- PHP deprecated notices in Unit test
- make-pot not working for my project HOT 14
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from i18n-command.