{"type":"rich","version":"1.0","provider_name":"phorkie","provider_url":"https:\/\/p.cweiske.de\/","title":"phing dsn-adder ","author_name":"Christian Weiske","cache_age":86400,"width":900,"height":900,"html":"<!-- embedding all files of https:\/\/p.cweiske.de\/93 -->\n<link rel=\"stylesheet\" href=\"https:\/\/p.cweiske.de\/css\/embed.css\"\/>\n<div class=\"phork\" id=\"93\">\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\">\/**\n * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n * (http:\/\/qbnz.com\/highlighter\/ and http:\/\/geshi.org\/)\n *\/\n.php .de1, .php .de2 {font: normal normal 1em\/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}\n.php  {font-family:monospace;}\n.php .imp {font-weight: bold; color: red;}\n.php li, .php .li1 {color: #DDD;}\n.php .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\n.php .kw1 {color: #b1b100;}\n.php .kw2 {color: #000000; font-weight: bold;}\n.php .kw3 {color: #990000;}\n.php .kw4 {color: #009900; font-weight: bold;}\n.php .co1 {color: #666666; font-style: italic;}\n.php .co2 {color: #666666; font-style: italic;}\n.php .co3 {color: #0000cc; font-style: italic;}\n.php .co4 {color: #009933; font-style: italic;}\n.php .coMULTI {color: #666666; font-style: italic;}\n.php .es0 {color: #000099; font-weight: bold;}\n.php .es1 {color: #000099; font-weight: bold;}\n.php .es2 {color: #660099; font-weight: bold;}\n.php .es3 {color: #660099; font-weight: bold;}\n.php .es4 {color: #006699; font-weight: bold;}\n.php .es5 {color: #006699; font-weight: bold; font-style: italic;}\n.php .es6 {color: #009933; font-weight: bold;}\n.php .es_h {color: #000099; font-weight: bold;}\n.php .br0 {color: #009900;}\n.php .sy0 {color: #339933;}\n.php .sy1 {color: #000000; font-weight: bold;}\n.php .st0 {color: #0000ff;}\n.php .st_h {color: #0000ff;}\n.php .nu0 {color: #cc66cc;}\n.php .nu8 {color: #208080;}\n.php .nu12 {color: #208080;}\n.php .nu19 {color:#800080;}\n.php .me1 {color: #004000;}\n.php .me2 {color: #004000;}\n.php .re0 {color: #000088;}\n.php span.xtra { display:block; }\n<\/style><div class=\"code\"><table class=\"php\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\"><span class=\"kw2\">&lt;?php<\/span>\n<span class=\"kw1\">require_once<\/span> <span class=\"st_h\">'phing\/Task.php'<\/span><span class=\"sy0\">;<\/span>\n&#160;\n<span class=\"kw2\">class<\/span> asd <span class=\"kw2\">extends<\/span> Task <span class=\"br0\">&#123;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">private<\/span> <span class=\"re0\">$asd<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"kw2\">protected<\/span> <span class=\"re0\">$dsn<\/span><span class=\"sy0\">;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> init<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>\n&#160;\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> main<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <a href=\"http:\/\/www.php.net\/var_dump\"><span class=\"kw3\">var_dump<\/span><\/a><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/get_class\"><span class=\"kw3\">get_class<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">dsn<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">dsn<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getUrl<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">project<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> addDsn<span class=\"br0\">&#40;<\/span>DSN <span class=\"re0\">$obj<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">dsn<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$obj<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n<span class=\"br0\">&#125;<\/span>\n<span class=\"sy1\">?&gt;<\/span>\n&#160;<\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/93\/rev-raw\/91f5df7d3795ddc75e92f0433b16909545255176\/asd.php\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/93#asd.php\">asd.php<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\">\/**\n * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n * (http:\/\/qbnz.com\/highlighter\/ and http:\/\/geshi.org\/)\n *\/\n.xml .de1, .xml .de2 {font: normal normal 1em\/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}\n.xml  {font-family:monospace;}\n.xml .imp {font-weight: bold; color: red;}\n.xml li, .xml .li1 {color: #DDD;}\n.xml .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\n.xml .es0 {color: #000099; font-weight: bold;}\n.xml .br0 {color: #66cc66;}\n.xml .sy0 {color: #66cc66;}\n.xml .st0 {color: #ff0000;}\n.xml .sc-1 {color: #808080; font-style: italic;}\n.xml .sc0 {color: #00bbdd;}\n.xml .sc1 {color: #ddbb00;}\n.xml .sc2 {color: #339933;}\n.xml .sc3 {color: #009900;}\n.xml .re0 {color: #000066;}\n.xml .re1 {color: #000000; font-weight: bold;}\n.xml .re2 {color: #000000; font-weight: bold;}\n.xml span.xtra { display:block; }\n<\/style><div class=\"code\"><table class=\"xml\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\"><span class=\"sc3\"><span class=\"re1\">&lt;?xml<\/span> <span class=\"re0\">version<\/span>=<span class=\"st0\">&quot;1.0&quot;<\/span> <span class=\"re2\">?&gt;<\/span><\/span>\n<span class=\"sc3\"><span class=\"re1\">&lt;project<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">&quot;test&quot;<\/span> <span class=\"re0\">basedir<\/span>=<span class=\"st0\">&quot;.&quot;<\/span> <span class=\"re0\">default<\/span>=<span class=\"st0\">&quot;main&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n&#160; <span class=\"sc3\"><span class=\"re1\">&lt;taskdef<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">&quot;asd&quot;<\/span> <span class=\"re0\">classname<\/span>=<span class=\"st0\">&quot;asd&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n&#160; <span class=\"sc3\"><span class=\"re1\">&lt;typedef<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">&quot;dsn&quot;<\/span> <span class=\"re0\">classname<\/span>=<span class=\"st0\">&quot;dbget.DSN&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n&#160;\n&#160; <span class=\"sc3\"><span class=\"re1\">&lt;dsn<\/span><\/span>\n<span class=\"sc3\"> &#160; &#160; &#160;<span class=\"re0\">id<\/span>=<span class=\"st0\">&quot;maindsn&quot;<\/span><\/span>\n<span class=\"sc3\"> &#160; &#160; &#160;<span class=\"re0\">url<\/span>=<span class=\"st0\">&quot;mysql:\/\/localhost\/mydatabase&quot;<\/span><\/span>\n<span class=\"sc3\"> &#160; &#160; &#160;<span class=\"re0\">username<\/span>=<span class=\"st0\">&quot;root&quot;<\/span><\/span>\n<span class=\"sc3\"> &#160; &#160; &#160;<span class=\"re0\">password<\/span>=<span class=\"st0\">&quot;&quot;<\/span><\/span>\n<span class=\"sc3\"> &#160; &#160; &#160;<span class=\"re0\">persistent<\/span>=<span class=\"st0\">&quot;false&quot;<\/span> <span class=\"re2\">\/&gt;<\/span><\/span>\n&#160;\n&#160; <span class=\"sc3\"><span class=\"re1\">&lt;target<\/span> <span class=\"re0\">name<\/span>=<span class=\"st0\">&quot;main&quot;<\/span><span class=\"re2\">&gt;<\/span><\/span>\n&#160; &#160; <span class=\"sc3\"><span class=\"re1\">&lt;asd<span class=\"re2\">&gt;<\/span><\/span><\/span>\n&#160; &#160; &#160; <span class=\"sc3\"><span class=\"re1\">&lt;dsn<\/span> <span class=\"re0\">refid<\/span>=<span class=\"st0\">&quot;maindsn&quot;<\/span><span class=\"re2\">\/&gt;<\/span><\/span>\n&#160; &#160; <span class=\"sc3\"><span class=\"re1\">&lt;\/asd<span class=\"re2\">&gt;<\/span><\/span><\/span>\n&#160; <span class=\"sc3\"><span class=\"re1\">&lt;\/target<span class=\"re2\">&gt;<\/span><\/span><\/span>\n&#160;\n<span class=\"sc3\"><span class=\"re1\">&lt;\/project<span class=\"re2\">&gt;<\/span><\/span><\/span>\n&#160;<\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/93\/rev-raw\/91f5df7d3795ddc75e92f0433b16909545255176\/build.xml\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/93#build.xml\">build.xml<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\">\/**\n * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n * (http:\/\/qbnz.com\/highlighter\/ and http:\/\/geshi.org\/)\n *\/\n.php .de1, .php .de2 {font: normal normal 1em\/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}\n.php  {font-family:monospace;}\n.php .imp {font-weight: bold; color: red;}\n.php li, .php .li1 {color: #DDD;}\n.php .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\n.php .kw1 {color: #b1b100;}\n.php .kw2 {color: #000000; font-weight: bold;}\n.php .kw3 {color: #990000;}\n.php .kw4 {color: #009900; font-weight: bold;}\n.php .co1 {color: #666666; font-style: italic;}\n.php .co2 {color: #666666; font-style: italic;}\n.php .co3 {color: #0000cc; font-style: italic;}\n.php .co4 {color: #009933; font-style: italic;}\n.php .coMULTI {color: #666666; font-style: italic;}\n.php .es0 {color: #000099; font-weight: bold;}\n.php .es1 {color: #000099; font-weight: bold;}\n.php .es2 {color: #660099; font-weight: bold;}\n.php .es3 {color: #660099; font-weight: bold;}\n.php .es4 {color: #006699; font-weight: bold;}\n.php .es5 {color: #006699; font-weight: bold; font-style: italic;}\n.php .es6 {color: #009933; font-weight: bold;}\n.php .es_h {color: #000099; font-weight: bold;}\n.php .br0 {color: #009900;}\n.php .sy0 {color: #339933;}\n.php .sy1 {color: #000000; font-weight: bold;}\n.php .st0 {color: #0000ff;}\n.php .st_h {color: #0000ff;}\n.php .nu0 {color: #cc66cc;}\n.php .nu8 {color: #208080;}\n.php .nu12 {color: #208080;}\n.php .nu19 {color:#800080;}\n.php .me1 {color: #004000;}\n.php .me2 {color: #004000;}\n.php .re0 {color: #000088;}\n.php span.xtra { display:block; }\n<\/style><div class=\"code\"><table class=\"php\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64\n65\n66\n67\n68\n69\n70\n71\n72\n73\n74\n75\n76\n77\n78\n79\n80\n81\n82\n83\n84\n85\n86\n87\n88\n89\n90\n91\n92\n93\n94\n95\n96\n97\n98\n99\n100\n101\n102\n103\n104\n105\n106\n107\n108\n109\n110\n111\n112\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\"><span class=\"kw2\">&lt;?php<\/span>\n<span class=\"kw1\">require_once<\/span> <span class=\"st0\">&quot;phing\/types\/DataType.php&quot;<\/span><span class=\"sy0\">;<\/span>\n&#160;\n<span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160;* This Type represents a DB Connection.<\/span>\n<span class=\"co4\">&#160;*\/<\/span>\n<span class=\"kw2\">class<\/span> DSN <span class=\"kw2\">extends<\/span> DataType <span class=\"br0\">&#123;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">private<\/span> <span class=\"re0\">$url<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"kw2\">private<\/span> <span class=\"re0\">$username<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"kw2\">private<\/span> <span class=\"re0\">$password<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"kw2\">private<\/span> <span class=\"re0\">$persistent<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">;<\/span>\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Sets the URL part: mysql:\/\/localhost\/mydatabase<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> setUrl<span class=\"br0\">&#40;<\/span><span class=\"re0\">$url<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">url<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$url<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Sets username to use in connection.<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> setUsername<span class=\"br0\">&#40;<\/span><span class=\"re0\">$username<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">username<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$username<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Sets password to use in connection.<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> setPassword<span class=\"br0\">&#40;<\/span><span class=\"re0\">$password<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">password<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$password<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Set whether to use persistent connection.<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @param boolean $persist<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> setPersistent<span class=\"br0\">&#40;<\/span><span class=\"re0\">$persist<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">persistent<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span>boolean<span class=\"br0\">&#41;<\/span> <span class=\"re0\">$persist<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getUrl<span class=\"br0\">&#40;<\/span>Project <span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">isReference<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getRef<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getUrl<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">url<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getUsername<span class=\"br0\">&#40;<\/span>Project <span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">isReference<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getRef<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getUsername<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">username<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getPassword<span class=\"br0\">&#40;<\/span>Project <span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">isReference<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getRef<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getPassword<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">password<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getPersistent<span class=\"br0\">&#40;<\/span>Project <span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">isReference<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getRef<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getPersistent<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">persistent<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Gets a combined hash\/array for DSN as used by PEAR.<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @return array<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getPEARDSN<span class=\"br0\">&#40;<\/span>Project <span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">isReference<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getRef<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getPEARDSN<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; &#160; &#160; <span class=\"kw1\">include_once<\/span> <span class=\"st_h\">'DB.php'<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$dsninfo<\/span> <span class=\"sy0\">=<\/span> DB<span class=\"sy0\">::<\/span><span class=\"me2\">parseDSN<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">url<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$dsninfo<\/span><span class=\"br0\">&#91;<\/span><span class=\"st_h\">'username'<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">username<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$dsninfo<\/span><span class=\"br0\">&#91;<\/span><span class=\"st_h\">'password'<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">password<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$dsninfo<\/span><span class=\"br0\">&#91;<\/span><span class=\"st_h\">'persistent'<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">persistent<\/span><span class=\"sy0\">;<\/span>\n&#160;\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$dsninfo<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Your datatype must implement this function, which ensures that there<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* are no circular references and that the reference is of the correct<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* type (DSN in this example).<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @return DSN<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getRef<span class=\"br0\">&#40;<\/span>Project <span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span> <span class=\"sy0\">!<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">checked<\/span> <span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$stk<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <a href=\"http:\/\/www.php.net\/array_push\"><span class=\"kw3\">array_push<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$stk<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$this<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">dieOnCircularReference<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$stk<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$o<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">ref<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getReferencedObject<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$p<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span> <span class=\"sy0\">!<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$o<\/span> instanceof DSN<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">throw<\/span> <span class=\"kw2\">new<\/span> BuildException<span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">ref<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getRefId<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot; doesn't denote a DSN&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span> <span class=\"kw1\">else<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$o<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n<span class=\"br0\">&#125;<\/span>\n<span class=\"sy1\">?&gt;<\/span>\n&#160;<\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/93\/rev-raw\/91f5df7d3795ddc75e92f0433b16909545255176\/dbget-DSN.php\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/93#dbget-DSN.php\">dbget-DSN.php<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <div class=\"code\"><pre class=\"txt\">$ phing\r\nBuildfile: \/home\/cweiske\/php\/test\/phing-dsn\/build.xml\r\n\r\ntest &gt; main:\r\n\r\nstring(3) &quot;DSN&quot;\r\nstring(28) &quot;mysql:\/\/localhost\/mydatabase&quot;\r\n\r\nBUILD FINISHED\r\n\r\nTotal time: 0.0672 seconds\r\n<\/pre><\/div>\n\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/93\/rev-raw\/91f5df7d3795ddc75e92f0433b16909545255176\/output.txt\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/93#output.txt\">output.txt<\/a>\n <\/div>\n<\/div>\n<\/div>\n"}
