Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:66393 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 17646 invoked from network); 1 Mar 2013 13:29:23 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 1 Mar 2013 13:29:23 -0000 Authentication-Results: pb1.pair.com header.from=julienpauli@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=julienpauli@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.128.180 as permitted sender) X-PHP-List-Original-Sender: julienpauli@gmail.com X-Host-Fingerprint: 209.85.128.180 mail-ve0-f180.google.com Received: from [209.85.128.180] ([209.85.128.180:55683] helo=mail-ve0-f180.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 43/A5-19541-23DA0315 for ; Fri, 01 Mar 2013 08:29:22 -0500 Received: by mail-ve0-f180.google.com with SMTP id jx10so2819539veb.25 for ; Fri, 01 Mar 2013 05:29:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=bkeSAD4BhlgYYoGVtu61MgykU2RJnjlTn4BLFChMjE4=; b=NBPvbim+NuXOF78Hg/hex50qBS5c4bpCHO6TlHrGR/gr0uc+KWWQqsAHga3UB7BISl vGSJvXtHDcGBeRlTkpZY2y2pH1GUbn0J1Pjf3Y9bMjenSB2g7U5Z+Y4mO2cm5AVRaAdR znMv34NeVRd1BGDtjZtfF0TuADAkF9aJqvcDxftx3adHjhTbjupe1bjmD/nEOK5v3mPM V23hlqTPMgsmCapPHz71H7st5D+XAhU2Ea07TjUQVZ7Fcsjqra0kjW1Z0BIL2kKtUmLo 1UBpIsacR+ED9WksixmsO7m7qjcfNMugx/gmAQ+10Pl4LnlPREo9NcaO5OID2Bs3prIr iJeQ== X-Received: by 10.220.222.133 with SMTP id ig5mr3994198vcb.32.1362144559100; Fri, 01 Mar 2013 05:29:19 -0800 (PST) MIME-Version: 1.0 Sender: julienpauli@gmail.com Received: by 10.220.140.132 with HTTP; Fri, 1 Mar 2013 05:28:38 -0800 (PST) In-Reply-To: References: <512FBA50.4000308@sugarcrm.com> Date: Fri, 1 Mar 2013 14:28:38 +0100 X-Google-Sender-Auth: IODq_q4fFoihm4J03LA_dplRU4s Message-ID: To: Kalle Sommer Nielsen Cc: Stas Malyshev , Anthony Ferrara , "internals@lists.php.net" Content-Type: multipart/alternative; boundary=14dae9cdc411942df104d6dcfea3 Subject: Re: [PHP-DEV] Include XDebug and Suhosin Patch in Core for 5.5 From: jpauli@php.net (Julien Pauli) --14dae9cdc411942df104d6dcfea3 Content-Type: text/plain; charset=ISO-8859-1 On Fri, Mar 1, 2013 at 12:49 PM, Kalle Sommer Nielsen wrote: > Hi > > 2013/3/1 Julien Pauli : > > I guess the ini declaration order and then the order the modules get > loaded > > in the engine. > > We could also look at implementing a module-load-order internally in > the zend_module struct, as in some extensions like EXIF relies on > mbstring, while the ZEND_MODULE_DEP()s works fine for checking for > mbstring, it does not work if mbstring is loaded after. So what I'm > saying is that mbstring have a higher load order, meaning even though > we have this in php.ini[1], PHP will load mbstring first because it > has the lowest value (requiring it to start first), or giving exif a > higher than 'normal' value (causing it to load after, as it is after > all, exif that depends on mbstring, not the other way around). > > The same thing can be done with engine level extensions > (zend_extension), where it probably would make more sense than for 90% > of all 'php' extensions. > > [1]: > extension=php_exif.dll > extension=php_mbstring.dll > +1 , Some time ago when I first designed my first extensions studying the Zend extension loading mechanism I thought about such a system and was surprised not to find one into the engine. It shouldn't be too hard to develop, except if you start thinking about versions dependencies of the modules as well. In the same pipe, I was thinking at some dlunload() function which would enable unoloading modules at runtime, but that's another task, not very trivial though. Julien > > > > -- > regards, > > Kalle Sommer Nielsen > kalle@php.net > --14dae9cdc411942df104d6dcfea3--