<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 7: process_event update</title><link>https://sourceforge.net/p/phpagi/feature-requests/7/</link><description>Recent changes to 7: process_event update</description><atom:link href="https://sourceforge.net/p/phpagi/feature-requests/7/feed.rss" rel="self"/><language>en</language><lastBuildDate>Tue, 09 Jul 2013 13:21:48 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/phpagi/feature-requests/7/feed.rss" rel="self" type="application/rss+xml"/><item><title>#7 process_event update</title><link>https://sourceforge.net/p/phpagi/feature-requests/7/?limit=25#4a88</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Steve Talbot</dc:creator><pubDate>Tue, 09 Jul 2013 13:21:48 -0000</pubDate><guid>https://sourceforge.net9a8ede0380d4434445afb4d4c5db02eea266d21c</guid></item><item><title>#7 process_event update</title><link>https://sourceforge.net/p/phpagi/feature-requests/7/?limit=25#e397</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roman Davydov</dc:creator><pubDate>Tue, 11 Jun 2013 15:48:50 -0000</pubDate><guid>https://sourceforge.netd16dc853dce383d3a5f432ea20f9ad124b9db961</guid></item><item><title>process_event update</title><link>https://sourceforge.net/p/phpagi/feature-requests/7/</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roman Davydov</dc:creator><pubDate>Tue, 11 Jun 2013 15:39:59 -0000</pubDate><guid>https://sourceforge.net9cbdd4a89f840f3dc6ffa75eaacd54bb2dcf6717</guid></item></channel></rss>