PHP JSON Object Create (New)
Read more at https://www.phpclasses.org/package/11754-PHP-Fill-PHP-objects-from-a-JSON-string.html
Here it is! Named “Eckstine” in honor of Billy Eckstine, this latest and greatest version of WordPress is available for download or update in your dashboard.
Welcome to WordPress 5.5.
Posts and pages feel faster, thanks to lazy-loaded images.
Images give your story a lot of impact, but they can sometimes make your site seem slow.
In WordPress 5.5, images wait to load until they’re just about to scroll into view. The technical term is ‘lazy loading.’
On mobile, lazy loading can also keep browsers from loading files meant for other devices. That can save your readers money on data — and help preserve battery life.
Say hello to your new sitemap.
WordPress sites work well with search engines.
Now, by default, WordPress 5.5 includes an XML sitemap that helps search engines discover your most important pages from the very minute you go live.
So more people will find your site sooner, giving you more time to engage, retain and convert them to subscribers, customers or whatever fits your definition of success.
Auto-updates for Plugins and Themes
Now you can set plugins and themes to update automatically — or not! — in the WordPress admin. So you always know your site is running the latest code available.
You can also turn auto-updates on or off for each plugin or theme you have installed — all on the same screens you’ve always used.
Update by uploading ZIP files
If updating plugins and themes manually is your thing, now that’s easier too — just upload a ZIP file.
Once again, the latest WordPress release packs a long list of exciting new features for the block editor. For example:
New block patterns make it simple and fun to create complex, beautiful layouts, using combinations of text and media that you can mix and match to fit your story.
You will also find block patterns in a wide variety of plugins and themes, with more added all the time. Pick any of them from a single place — just click and go!
Now it’s easier than ever to find the block you need. The new block directory is built right into the block editor, so you can install new block types to your site without ever leaving the editor.
Crop, rotate, and zoom your photos right from the image block. If you spend a lot of time on images, this could save you hours!
The highlights above are a tiny fraction of the new block editor features you’ve just installed. Open the block editor and enjoy!
Every release adds improvements to the accessible publishing experience, and that remains true for WordPress 5.5.
Now you can copy links in media screens and modal dialogs with a button, instead of trying to highlight a line of text.
You can also move meta boxes with the keyboard, and edit images in WordPress with your assistive device, as it can read you the instructions in the image editor.
5.5 also brings a big box of changes just for developers.
The addition of block types endpoints means that JavaScript apps (like the block editor) can retrieve definitions for any blocks registered on the server.
WordPress now has a standardized way to define a site’s environment type (staging, production, etc). Retrieve that type with wp_get_environment_type()
and execute only the appropriate code.
The Dashicons library has received its final update in 5.5. It adds 39 block editor icons along with 26 others.
The template loading functions (get_header()
, get_template_part()
, etc.) have a new $args
argument. So now you can pass an entire array’s worth of data to those templates.
redirect_guess_404_permalink()
.wp_opcache_invalidate()
function during updates (including to plugins and themes).register_taxonomy()
.register_meta()
.Leading this release were Matt Mullenweg, Jake Spurlock, and David Baumwald. Supporting them was this highly enthusiastic release squad:
Joining the squad throughout the release cycle were 805 generous volunteer contributors who collectively worked on over 523 tickets on Trac and over 1660 pull requests on GitHub.
Put on a Billy Eckstine playlist, click that update button (or download it directly), and check the profiles of the fine folks that helped:
A2 Hosting, a4jp . com, a6software, Aaron D. Campbell, Aaron Jorbin, abderrahman, Abha Thakor, Achal Jain, achbed, Achyuth Ajoy, acosmin, acsnaterse, Adam Silverstein, Addie, addyosmani, adnan.limdi, adrian, ahortin, airamerica, Ajay Ghaghretiya, Ajit Bohra, akbarhusen, akbarhusen429, Akhilesh Sabharwal, Akira Tachibana, Alain Schlesser, Albert Juhé Lluveras, Alex Concha, Alex Kirk, Alex Lende, Alex Shiels, Ali, ali11007, Allen Snook, amaschas, Amit Dudhat, anbumz, andfinally, Andrea Fercia, Andrea Middleton, Andrea Tarantini, Andrei Draganescu, Andrew Duthie, Andrew Nacin, Andrew Nevins, Andrew Ozz, Andrey "Rarst" Savchenko, Andrés Maneiro, Andy Fragen, Andy Meerwaldt, Andy Peatling, Angela Jin, Angelika Reisiger, Anh Tran, Ankit Gade, Ankit K Gupta, Ankit Panchal, Anne McCarthy, Anthony Burchell, Anton Timmermans, Antonis Lilis, apedog, archon810, argentite, Arpit G Shah, Arslan Ahmed, asalce, ashiagr, ashour, Atharva Dhekne, Aurélien Joahny, aussi, automaton, Ayesh Karunaratne, BackuPs, Barry, Barry Ceelen, Bart Czyz, bartekcholewa, bartkalisz, Bastien Ho, Bastien Martinent, bcworkz, bdbch, bdcstr, Ben Dunkle, Bence Szalai, bencroskery, Benjamin Gosset, Benoit Chantre, Bernhard Reiter, BettyJJ, bgermann, bigcloudmedia, bigdawggi, Bill Erickson, Birgir Erlendsson (birgire), Birgit Pauli-Haack, BjornW, bonger, Boone Gorges, Boris, Brandon Kraft, Brandon Payton, Brent Swisher, Brian Krogsgard, bruandet, Bunty, Burhan Nasir, caiocrcosta, Cameron Voell, cameronamcintyre, Carike, Carl Wuensche, Carlos Galarza, Carolina Nymark, Caroline Moore, Carrigan, ceyhun, Chad, Chad Butler, Charles Fulton, Chetan Prajapati, Chintan hingrajiya, Chip Snyder, Chloé Bringmann, Chouby, Chris Van Patten, chriscct7, Christian Chung, Christian Jongeneel, Christian Sabo, Christian Wach, Christoph Herr, cklee, clayray, Clifford Paulick, codeforest, Commeuneimage, Copons, Corey McKrill, cpasqualini, Cristovao Verstraeten, Csaba (LittleBigThings), Curtis Belt, Cyrus Collier, D.PERONNE, d6, Daniel Bachhuber, Daniel Hüsken, Daniel James, Daniel Llewellyn, Daniel Richards, Daniel Roch, Daniele Scasciafratte, Danny, Darko G., Darren Ethier (nerrad), Dave McHale, Dave Whitley, David A. Kennedy, David Aguilera, David Anderson, David Artiss, David Baumwald, David Binovec, David Brumbaugh, David E. Smith, David Herrera, David Ryan, David Shanske, David Smith, davidvee, dchymko, Debabrata Karfa, Deepak Lalwani, dekervit, Delowar Hossain, demetris, Denis Yanchevskiy, derekakelly, Derrick Hammer, Derrick Tennant, Diane Co, Dilip Bheda, Dimitris Mitsis, dingo-d, Dion Hulse, Dixita Dusara, djennez, dmenard, dmethvin, doc987, Dominik Schilling, donmhico, Dono12, Doobeedoo, Dossy Shiobara, dpacks, dratwas, Drew Jaynes, DrLightman, DrProtocols, dsifford, dudo, Dustin Bolton, dvershinin, Dylan Kuhn, Earle Davies, ecotechie, Eddie Moya, Eddy, Edi Amin, ehtis, Eileen Violini, Ekaterina, Ella van Durpe, elmastudio, Emanuel Blagonic, Emilie LEBRUN, Emmanuel Hesry, Enej Bajgoric, Enrico Sorcinelli, Enrique Piqueras, Enrique Sánchez, Eric, Eric Andrew Lewis, Eric Binnion, Erik Betshammar, Erin 'Folletto' Casali, esemlabel, esoj, espiat, Estela Rueda, etoledom, etruel, Ev3rywh3re, Evan Mullins, Fabian Kägy, Fabian Todt, Faisal Ahmed, Felix Arntz, Felix Edelmann, ferdiesletering, finomeno, Florian Brinkmann, Florian TIAR, Florian Truchot, florianatwhodunit, FolioVision, Francesca Marano, Francois Thibaud, Frank Goossens, Frank Klein, Frank.Prendergast, Franz Armas, Gabriel Koen, Gabriel Maldonado, Gabriel Mays, gadgetroid, Gal Baras, Garavani, garethgillman, Garrett Hyder, Gary Cao, Gary Jones, Gary Pendergast, Geert De Deckere, Gemini Labs, Gennady Kovshenin, geriux, Giorgio25b, gisselfeldt, glendaviesnz, goldsounds, Goto Hayato, Govind Kumar, Grégory Viguier, gradina, Greg Ziółkowski, gregmulhauser, grierson, Grzegorz.Janoszka, gsmumbo, Guido Scialfa, guidobras, Gunther Pilz, gwwar, H-var, hakre, Halacious, hankthetank, Hapiuc Robert, Hareesh Pillai, haukep, Haz, Hector F, Helen Hou-Sandi, Henry Wright, hlanggo, hommealone, Hoover, Howdy_McGee, hronak, huntlyc, Ian Belanger, Ian Dunn, Ian Stewart, ianjvr, ibdz, ifrins, infinum, Ipstenu (Mika Epstein), Isabel Brison, ishitaka, J.D. Grimes, jackfungi, jacklinkers, Jadon N, jadpm, jagirbahesh, Jake Spurlock, James Koster, James Nylen, Jan Koch, Jan Reilink, Jan Thiel, Janvo Aldred, Jarret, Jason Adams, Jason Coleman, Jason Cosper, Jason Crouse, Jason LeMahieu (MadtownLems), Jason Rouet, JasWSInc, Javier Casares, Jayson Basanes, jbinda, jbouganim, Jean-Baptiste Audras, Jean-David Daviet, Jeff Chandler, Jeff Farthing, Jeff Ong, Jeff Paul, Jen, Jenil Kanani, Jeremy Felt, Jeremy Herve, Jeremy Yip, jeryj, Jesin A, Jignesh Nakrani, Jim_Panse, Jip Moors, jivanpal, Joe Dolson, Joe Hoyle, Joe McGill, Joen Asmussen, Johanna de Vos, John Blackbourn, John Dorner, John James Jacoby, John P. Green, John Watkins, johnnyb, Jon Quach, Jon Surrell, Jonathan Bossenger, Jonathan Champ, Jonathan Christopher, Jonathan Desrosiers, jonkolbert, Jonny Harris, jonnybot, Jono Alderson, Joost de Valk, Jorge Bernal, Jorge Costa, Joseph Dickson, Josepha Haden, Josh Smith, JoshuaWold, Joy, Juanfra Aldasoro, juanlopez4691, Jules Colle, julianm, Juliette Reinders Folmer, Julio Potier, Julka Grodel, Justin Ahinon, Justin de Vesine, Justin Tadlock, justlevine, justnorris, K. Adam White, kaggdesign, Kailey (trepmal), Kaira, Kaitlin Bolling, KamataRyo, Kantari Samy, Kaspars, Kavya Gokul, keesiemeijer, Kelly Dwan, kennethroberson5556, Kevin Hagerty, Kharis Sulistiyono, Khokan Sardar, kinjaldalwadi, Kiril Zhelyazkov, Kirsty Burgoine, Kishan Jasani, kitchin, Kite, Kjell Reigstad, Knut Sparhell, Konstantin Obenland, Konstantinos Xenos, ksoares, KT Cheung, Kukhyeon Heo, lalitpendhare, Laterna Studio, laurelfulford, Laurens Offereins, Levdbas, Lew Ayotte, Lex Robinson, linyows, lipathor, Lisa Schuyler, liuhaibin, ljharb, logig, lucasbustamante, luiswill, Luke Cavanagh, Luke Walczak, lukestramasonder, M Asif Rahman, M.K. Safi, Maarten de Boer, Mahfoudh Arous, manojlovic, Manuel Schmalstieg, maraki, Marcin Pietrzak, Marcio Zebedeu, Marco Pereirinha, MarcoZ, Marcus, Marcus Kazmierczak, Marek Dědič, Marek Hrabe, Mario Valney, Marius Jensen, Mark Chouinard, Mark Parnell, Mark Uraine, markdubois, markgoho, Marko Andrijasevic, Marko Heijnen, MarkRH, markshep, markusthiel, Martijn van der Kooij, martychc23, Mary Baum, Matheus Martins, Mathieu Viet, Matias Ventura, matjack1, Matt Cromwell, Matt Mullenweg, Matt Radford, Matt van Andel, mattchowning, Matthew Boynes, Matthew Eppelsheimer, Matthew Gerring, Matthias Kittsteiner, Matthias Pfefferle, Matthieu Mota, mattyrob, Maxime Culea, Maxime Pertici, maxme, Mayank Majeji, mcshane, Mel Choyce-Dwan, Menaka S., mensmaximus, metalandcoffee, Michael, Michael Arestad, Michael Arestad, Michael Fields, Michael Nelson, Michele Butcher-Jones, Michelle, Miguel Fonseca, mihdan, Miina Sikk, Mikael Korpela, mikaumoto, Mike Crantea, Mike Glendinning, Mike Haydon, Mike Schinkel [WPLib Box project lead], Mike Schroder, Mikey Arce, Milana Cap, Milind More, mimi, mislavjuric, Mohammad Jangda, Mohammad Rockeybul Alam, Mohsin Rasool, Monika Rao, Morgan Kay, Morten Rand-Hendriksen, Morteza Geransayeh, moto hachi ( mt8.biz ), mrgrt, mrmist, mrTall, msaggiorato, Muhammad Usama Masood, Mukesh Panchal, munyagu, Nadir Seghir, Nahid Ferdous Mohit, Naoko Takano, narwen, Nate Gay, Nathan Rice, Navid, neonkowy, net, netpassprodsr, Nextendweb, Ngan Tengyuen, Nick Daugherty, Nicky Lim, nicolad, Nicolas Juen, NicolasKulka, Nidhi Jain, Niels de Blaauw, Niels Lange, nigro.simone, Nikhil Bhansi, Nikolay Bachiyski, Nilo Velez, Niresh, nmenescardi, Noah Allen, ntsekouras, NumidWasNotAvailable, oakesjosh, obliviousharmony, ockham, Omar Alshaker, onokazu, Optimizing Matters, ovann86, overclokk, p_enrique, Paal Joachim Romdahl, palmiak, Paresh Shinde, Parvand, Pascal Birchler, Pascal Casier, Paul Bearne, Paul Biron, Paul Fernhout, Paul Gibbs, Paul Ryan, Paul Schreiber, Paul Stonier, Paul Von Schrottky, pavelevap, Pedro Mendonça, pentatonicfunk, pepe, Peter "Pessoft" Kolínek, Peter Westwood, Peter Wilson, Phil Derksen, Phil Johnston, Philip Jackson, Pierre Gordon, pigdog234, pikamander2, pingram, Pionect, Piyush Patel, pkarjala, pkvillanueva, Prashant Baldha, pratik028, Pravin Parmar, Presskopp, Presslabs, Priyank Patel, Priyo Mukul, ProGrafika, programmin, Puneet Sahalot, pvogel2, r-a-y, Raaj Trambadia, Rachel Peter, raine, Ramanan, Rami Yushuvaev, Rastaban, RavanH, Ravat Parmar, ravenswd, rawrly, rebasaurus, Red Sand Media Group, Remy Perona, Remzi Cavdar, Renatho, renggo888, retlehs, retrofox, Riad Benguella, Rian Rietveld, riasat, Rich Tabor, Ringisha, ritterml, Rnaby, Rob Cutmore, Rob Migchels, rob006, Robert Anderson, Robert Chapin, Robert Peake, Ronald Huereca, Rostislav Wolný, Roy Tanck, ruxandra, Ryan Boren, Ryan Fredlund, Ryan Kienstra, Ryan McCue, Ryan Welcher, Ryota Sakamoto, ryotsun, Sören Wrede, Søren Brønsted, Sachit Tandukar, Sagar Jadhav, Sajjad Hossain Sagor, Sal Ferrarello, Salvatore Formisano, Sam Fullalove, Sam Webster, Samir Shah, Samuel Wood (Otto), samueljseay, Sander van Dragt, Sanket Mehta, sarahricker, Sathiyamoorthy V, Sayed Taqui, scarolan, scholdstrom, Scott Kingsley Clark, Scott Reilly, Scott Smith, Scott Taylor, scribu, scruffian, Sean Hayes, seanpaulrasmussen, seayou, senatorman, Sergey Biryukov, Sergey Predvoditelev, Sergio de Falco, sergiomdgomes, Shannon Smith, Shantanu Desai, shaunandrews, Shawn Hooper, shawnz, Shital Marakana, shulard, siliconforks, Simon Wheatley, simonjanin, sinatrateam, sjmur, skarabeq, skorasaurus, skoskie, slushman, snapfractalpop, SpearsMarketing, sphakka, squarecandy, sreedoap, Stanimir Stoyanov, Stefano Minoia, Stefanos Togoulidis, Steph Wells, Stephen Bernhardt, Stephen Cronin, Stephen Edgar, Steve Dufresne, stevegibson12, Steven Stern (sterndata), Steven Word, stevenkussmaul, stevenlinx, Stiofan, Subrata Sarkar, SUM1, Sunny, Sunny Ratilal, Sushyant Zavarzadeh, suzylah, Sybre Waaijer, Synchro, Sérgio Estêvão, Takayuki Miyauchi, Tammie Lister, Tang Rufus, TeBenachi, Tessa Watkins LLC, Tetsuaki Hamano, theMikeD, theolg, Thierry Muller, thimalw, Thomas M, Thorsten Frommen, Thrijith Thankachan, Tiago Hillebrandt, Till Krüss, Timothy Jacobs, Tkama, tmdesigned, tmoore41, TobiasBg, tobifjellner (Tor-Bjorn Fjellner), Tofandel, tomdude, Tommy Ferry, Tony G, Toro_Unit (Hiroshi Urabe), torres126, Torsten Landsiedel, Toru Miki, Travis Northcutt, treecutter, truongwp, tsimmons, Tung Du, Udit Desai, Ulrich, vabrashev, Vagios Vlachos, valchovski, Valentin Bora, Vayu Robins, veromary, Viktor Szépe, vinkla, virginienacci, Vladimir, vortfu, voyager131, vtieu, webaware, Weston Ruter, Whodunit, William Earnhardt, williampatton, Winstina, wpdesk, WPDO, WPMarmite, wppinar, Yahil Madakiya, yashrs, yoancutillas, yohannp, yuhin, Yuri Salame, Yvette Sonneveld, Zack Tollman, zaheerahmad, zakkath, Zebulan Stanphill, zieladam, and Česlav Przywara.
Many thanks to all of the community volunteers who contribute in the support forums. They answer questions from people across the world, whether they are using WordPress for the first time or since the first release. These releases are more successful for their efforts!
Finally, thanks to all the community translators who worked on WordPress 5.5. Their efforts bring WordPress fully translated to 46 languages at release time, with more on the way.
If you want to learn more about volunteering with WordPress, check out Make WordPress or the core development blog.
Latest PECL Releases:
The post Eighers Gonna Eight with Sara Golemon and Garbriel Caruso appeared first on Voices of the ElePHPant.
It seems like every designer and developer out there is on the hunt for perfection. As if somehow that’s our ticket to the top. The distinguished projects, the big paycheck and the booming business. It all will come if we just…do the impossible?
The trouble is, we mere mortals aren’t known for perfection. Sure, subjectively someone could look at a project in our portfolio and say “it’s perfect”. Flattering as it may be, another person may look at that same project and give it a “meh”.
Recently, I’ve begun to realize what a pointless pursuit this is. Since design (and even code) is so subjective – is perfect really a thing? In my view it just seems like a big old waste of time. It’s an impossible standard to hold ourselves to. And thus, it’s ultimately counterproductive.
So, if we’re not after perfection, just what are we aiming for?
In my own journey, I feel like competency has become a bit of a lost art. It also gets a bad name, as some seem to equate it with mediocrity.
However, that view doesn’t take the whole picture into consideration. To me, being a competent web designer is a pretty awesome thing. It means that you:
To be sure, none of these traits are guarantees of perfection. But put them together and it means that there’s a good chance you’ll deliver outstanding results. That’s something the vast majority of your clients will see and appreciate.
When it comes to web design, competence may be a bit of a bland term. It certainly doesn’t stir up the emotions quite as much as “perfect”.
Still, I take it to mean that a design is solid and the code is technically sound. In other words: it looks good and it works the way it’s supposed to. In the end, isn’t that what both designers and our clients are hoping for?
The idea of achieving perfection is a fool’s errand. As such, it can feel like forever climbing a mountain with a boulder strapped to your back. You’re more likely to be stuck in place rather than making progress.
Letting go of this idea is freeing. It can help clear your mind and remove those thoughts of not being “good enough”. You’re no longer competing against whoever or whatever you consider to be perfect. Instead, you’re simply doing your very best.
And there’s the irony. It may sound like aiming for competence means lowering your standards. But it’s actually the practice of being comfortable in your own skin. It’s realizing and accepting your strengths and limitations. Then, striving to improve with every project.
In all, you’re no longer trapped by the walls that perfection puts up around you.
Maybe all of this sounds nice enough. But what does it take to let go of this unproductive pursuit? I don’t think there’s one single playbook to follow.
Each of us have our own unique experiences and they inform our approach. But in general, it’s about changing how you look at your work and your place in the industry.
For instance, it’s easy to look at past projects with a highly-critical eye. This is a natural reaction. Why? Because you’ve likely grown as a designer or developer. Therefore, you see things you might have done differently.
But instead of focusing on the negatives of those old projects, look at what you did right. Maybe a particular project saw you employ a new skill or technique for the first time. Or perhaps it was a success for your client.
Rather than see it as a list of could haves and should haves, think about that project as a step in your progress. In its own way, it helped you get to where you are now.
Your portfolio may seem, in your opinion, to be better or worse than that of your peers. That’s to be expected, as we are all at different points in our career. Not to mention the differences in market niche, location and industry connections.
Some may have booked that big project to put them on the map, while you’re still waiting for that opportunity. In these scenarios, it’s important to keep things in perspective.
It’s great to seek inspiration in what others are doing. But you don’t need to hold yourself to some imaginary standard based on their success.
Try to look at your personal progression as a solo trip. In that way, your only real competition is with yourself. And getting to where you want to go takes time.
None of us are perfect. We all have our share of successes and failures. But, by themselves, those things don’t define us. Rather, we are defined by what we learn from each and every project.
When compared with the relentless (and perhaps pointless) aim for perfection, I believe this is a much healthier approach. Personal growth doesn’t need to be perfect. There will be fits and starts. Learning to accept that is key.
The beauty of competency is that it’s actually something we can attain. Not only that, but with a little elbow grease we can continue to improve upon that trait over time.
So, while the thought of being perfect is more buzzed-about, the act of being competent is what will bring you the most joy.
The post Embracing Competency and Letting Go of Design Perfection appeared first on Speckyboy Design Magazine.
Another monthly update where I explain what happened with Xdebug development in this past month. These will be published on the first Tuesday after the 5th of each month. Patreon and GitHub supporters will get it earlier, on the first of each month. You can become a patron to support my work on Xdebug. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
In July, I worked on Xdebug for about 100 hours, with funding being around 70 hours. I worked mostly on the following things:
I spend nearly all of my time improving performance this month, with some help by Michael Voříšek for the profiler feature. Some of this work I have done live through Twitch where I stream (almost) every Monday at 15:30 BST (14:30 UTC/10:30 EDT). Past sessions are available on Vimeo.
In order to find out what can be improved I profiled Xdebug running various workloads. I have selected the following workloads per Xdebug mode
off: zetacomponents Document test suite
develop: "composer update" for Pimcore, "composer update" for ShopWare
coverage: PHPUnit test suite coverage
profiling: akt-ui
If you have any specific one you'd like to see added, please let me know and I'll see whether I have CPU cycles for it—running composer update for Pimcore under the C profiler Valgrind takes 2½ hours per run!
In any case, the profiling found out the following possible improvements:
Most of Xdebug was written before PHP 7, and when updating Xdebug to work with both PHP 5 and PHP 7 certain PHP 5 APIs, wrapped in macros to make it work with PHP 7, remained in use by Xdebug. When dropping PHP 5 support, I did not update these APIs to use the PHP 7 variant. One of these APIs is that in PHP 5, strings were often passed around as a char string, size_t len pair. PHP 7 introduced a new data type zend_string str which encapsulates both elements of the pair, and also introduced reference counting for zend_string s, which reduces the need for duplication of memory. This gave about a ~2% performance boost to Wall Time (the time passage as indicated by a clock), and about a 5% reduction in CPU instructions.
Xdebug often needs to convert data into a single string, for either writing to file or network, storing function names with arguments in memory, or display purposes. It uses an API xdebug_sprintf which allocates new memory and formats the string according to format specifiers. Often it needs to add this to a xdebug_str buffer that makes up a longer piece of text. After it has added it to that buffer, it frees the allocated memory again.
By creating a new API that can add a formatted string to an xdebug_str buffer, I managed to reduce the amount of memory allocations and frees dramatically. This gave a 10-15% Wall Time performance boost, and a 10-25% reduction in CPU instructions.
Xdebug's internals contain a stack of all the functions that are called. Every time a new function is called, a new stack level is allocated, and when the function ends this stack element is freed up. In applications which call a lot of small functions, such as Com
Truncated by Planet PHP, read more at the original (another 3405 bytes)
Latest PEAR Releases: