What happens when mymodule is enabled, but because of the registry (or even<br>in D6, the &quot;file&quot; argument in hook_menu()) is not loading the function you assume<br>exists just because mymodule is enabled (and module_exists(&#39;mymodule&#39;) returns<br>
TRUE?<br><br>I guess function_exists() would be path dependent now? Please correct me.<br><br><div class="gmail_quote">On Sun, Jun 22, 2008 at 5:46 PM, Larry Garfield &lt;<a href="mailto:larry@garfieldtech.com">larry@garfieldtech.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Come Drupal 7, you&#39;ll want to use drupal_function_exists() specifically so<br>
that it can lazy-load the function if needed. &nbsp;I suppose that&#39;s a strike in<br>
favor of using function_exists() for now so that your logic is already setup<br>
for that.<br>
<div><div></div><div class="Wj3C7c"><br>
On Sunday 22 June 2008 4:36:46 pm Greg Knaddison - GVS wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; In building some contrib modules that interact with other modules I<br>
&gt; often find myself writing something like:<br>
&gt;<br>
&gt; if (module_exists(&#39;module_name&#39;)) {<br>
&gt; &nbsp; $foo = module_name_api_function($bar);<br>
&gt; }<br>
&gt;<br>
&gt; This seems to be pretty common across core and contrib. &nbsp;I&#39;d even call<br>
&gt; it standard.<br>
&gt;<br>
&gt; Another option would be:<br>
&gt;<br>
&gt; if (function_exists(&#39;module_name_api_function&#39;)) {<br>
&gt; &nbsp; $foo = module_name_api_function($bar);<br>
&gt; }<br>
&gt;<br>
&gt; The benefit of the second format is that if/when module_name&#39;s<br>
&gt; maintainer decides to rewrite module_name and change all their<br>
&gt; functions then my module may simply stop interacting with it rather<br>
&gt; than failing on a function not found error.<br>
&gt;<br>
&gt; The benefit of the first format is that it fails quickly and is likely<br>
&gt; to generate a bug report with a very clear solution.<br>
&gt;<br>
&gt; Thoughts?<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Greg<br>
<br>
--<br>
</div></div><font color="#888888">Larry Garfield<br>
<a href="mailto:larry@garfieldtech.com">larry@garfieldtech.com</a><br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Khalid M. Baheyeldin<br><a href="http://2bits.com">2bits.com</a>, Inc.<br><a href="http://2bits.com">http://2bits.com</a><br>Drupal optimization, development, customization and consulting.