<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to 7: process_event update</title><link href="https://sourceforge.net/p/phpagi/feature-requests/7/" rel="alternate"/><link href="https://sourceforge.net/p/phpagi/feature-requests/7/feed.atom" rel="self"/><id>https://sourceforge.net/p/phpagi/feature-requests/7/</id><updated>2013-07-09T13:21:48.012000Z</updated><subtitle>Recent changes to 7: process_event update</subtitle><entry><title>#7 process_event update</title><link href="https://sourceforge.net/p/phpagi/feature-requests/7/?limit=25#4a88" rel="alternate"/><published>2013-07-09T13:21:48.012000Z</published><updated>2013-07-09T13:21:48.012000Z</updated><author><name>Steve Talbot</name><uri>https://sourceforge.net/u/stevetalbot/</uri></author><id>https://sourceforge.net9a8ede0380d4434445afb4d4c5db02eea266d21c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Great idea.  To avoid typecasting a callable to a string, you can do the following.&lt;/p&gt;
&lt;p&gt;This is also backwardly compatible with the old type of event handler, without needing to use function_exists.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="x"&gt;function process_event($parameters)&lt;/span&gt;
&lt;span class="x"&gt;{&lt;/span&gt;
&lt;span class="x"&gt;  $ret = false;&lt;/span&gt;
&lt;span class="x"&gt;  $e = strtolower($parameters['Event']);&lt;/span&gt;
&lt;span class="x"&gt;  $this-&amp;gt;log(&amp;quot;Got event.. $e&amp;quot;);&lt;/span&gt;

&lt;span class="x"&gt;  $handler = '';&lt;/span&gt;
&lt;span class="x"&gt;  if(isset($this-&amp;gt;event_handlers[$e])) $handler = $this-&amp;gt;event_handlers[$e];&lt;/span&gt;
&lt;span class="x"&gt;  elseif(isset($this-&amp;gt;event_handlers['*'])) $handler = $this-&amp;gt;event_handlers['*'];&lt;/span&gt;

&lt;span class="x"&gt;  if(is_callable($handler)) {&lt;/span&gt;
&lt;span class="x"&gt;    $this-&amp;gt;log(&amp;quot;Execute handler for event '$e'&amp;quot;);&lt;/span&gt;
&lt;span class="x"&gt;    call_user_func($handler, $e, $parameters, $this-&amp;gt;server, $this-&amp;gt;port);&lt;/span&gt;
&lt;span class="x"&gt;  }&lt;/span&gt;
&lt;span class="x"&gt;  else&lt;/span&gt;
&lt;span class="x"&gt;    $this-&amp;gt;log(&amp;quot;No event handler for event '$e'&amp;quot;);&lt;/span&gt;
&lt;span class="x"&gt;  return $ret;&lt;/span&gt;
&lt;span class="x"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</summary></entry><entry><title>#7 process_event update</title><link href="https://sourceforge.net/p/phpagi/feature-requests/7/?limit=25#e397" rel="alternate"/><published>2013-06-11T15:48:50.379000Z</published><updated>2013-06-11T15:48:50.379000Z</updated><author><name>Roman Davydov</name><uri>https://sourceforge.net/u/davydovskiy/</uri></author><id>https://sourceforge.netd16dc853dce383d3a5f432ea20f9ad124b9db961</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;For example:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;process_event&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$parameters&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  $&lt;span class="n"&gt;ret&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  $&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;strtolower&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'Event'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&amp;quot;&lt;span class="n"&gt;Got&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;..&lt;/span&gt; $&lt;span class="n"&gt;e&lt;/span&gt;&amp;quot;&lt;span class="p"&gt;);&lt;/span&gt;

  $&lt;span class="n"&gt;handler&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;isset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;event_handlers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;$&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; $&lt;span class="n"&gt;handler&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;event_handlers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;$&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="k"&gt;elseif&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;isset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;event_handlers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'*'&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; $&lt;span class="n"&gt;handler&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;event_handlers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'*'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

  &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;function_exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&amp;quot;&lt;span class="n"&gt;Execute&lt;/span&gt; &lt;span class="n"&gt;handler&lt;/span&gt; $&lt;span class="n"&gt;handler&lt;/span&gt;&amp;quot;&lt;span class="p"&gt;);&lt;/span&gt;
    $&lt;span class="n"&gt;ret&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; $&lt;span class="n"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; $&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;is_callable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="n"&gt;call_user_func_array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;$&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; $&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;else&lt;/span&gt;
    $&lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&amp;quot;&lt;span class="n"&gt;No&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt; &lt;span class="n"&gt;handler&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt; &lt;span class="s"&gt;'$e'&lt;/span&gt;&amp;quot;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; $&lt;span class="n"&gt;ret&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</summary></entry><entry><title>process_event update</title><link href="https://sourceforge.net/p/phpagi/feature-requests/7/" rel="alternate"/><published>2013-06-11T15:39:59.175000Z</published><updated>2013-06-11T15:39:59.175000Z</updated><author><name>Roman Davydov</name><uri>https://sourceforge.net/u/davydovskiy/</uri></author><id>https://sourceforge.net9cbdd4a89f840f3dc6ffa75eaacd54bb2dcf6717</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello, I think it would be a great idea to use "is_callable" instead of "function_exists" in "phpagi-asmanager.php" in the function "process_event", or just add support for this as well...&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>