<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Phazeon.com &#187; Symfony</title>
	<atom:link href="http://phazeon.com/category/programming/programming-symfony/feed/" rel="self" type="application/rss+xml" />
	<link>http://phazeon.com</link>
	<description>A glimse into the shadows of my mind.</description>
	<lastBuildDate>Thu, 16 Jul 2009 16:54:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Simple Logging Utility Class for Symfony</title>
		<link>http://phazeon.com/2009/07/10/simple-logging-utility-class-for-symfony/</link>
		<comments>http://phazeon.com/2009/07/10/simple-logging-utility-class-for-symfony/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 05:10:49 +0000</pubDate>
		<dc:creator>PhazeonPhoenix</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://phazeon.com/?p=103</guid>
		<description><![CDATA[A simple PHP class to make logging in Symfony a little more straight forward.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little gem I&#8217;ve been using for quite some time. Sometimes during your development process you simply want to see the contents of a variable while it&#8217;s being used or want to know when a certain bit of code is firing. In my PHP programming infancy I would simply dump such data on screen with functions like echo and print_r. This was an ugly and brutish way of doing it.</p>
<p>Since one of the nice features Symfony sports is it&#8217;s logging features, I started dumping such data to the log. I quickly found out that depending on what part of the code I was working on, the syntax of my logging was different and became quite cumbersome in some cases.</p>
<p>In comes the following class, the Logging class, or L class for short.  It simplifies logging and dumping a variable to the log.  I also found it helpful when I was first learning Symfony to know what methods a class had. I&#8217;ve also included that function as well.</p>
<p>Here are some examples:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">        L<span class="sy0">::</span><span class="kw3">log</span><span class="br0">&#40;</span><span class="st_h">'Something happened.'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="re0">$array</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'1'</span><span class="sy0">,</span> <span class="st_h">'2'</span><span class="sy0">,</span> <span class="st_h">'Tom'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Jones'</span><span class="sy0">,</span> <span class="st_h">'Richard'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Smith'</span><span class="sy0">,</span>
            <span class="st_h">'Harrold'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Jackson'</span><span class="br0">&#41;</span><span class="sy0">;</span>
        L<span class="sy0">::</span><span class="me2">dump</span><span class="br0">&#40;</span><span class="re0">$array</span><span class="sy0">,</span> <span class="st_h">'Example Array'</span><span class="sy0">,</span> <span class="st_h">'info'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="re0">$config</span> <span class="sy0">=</span> <span class="kw2">new</span> sfConfig<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        L<span class="sy0">::</span><span class="me2">methods</span><span class="br0">&#40;</span><span class="re0">$config</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>Output:</p>
<div class="wp-syntax">
<div class="code">
<pre class="php">Jul DD HH:MM:SS symfony [debug]
***********************
* Something happened. *
***********************

Jul DD HH:MM:SS symfony [info]
*******************************
* Variable Dump Example Array *
*******************************
array (
 0 =&gt; '1',
 1 =&gt; '2',
 'Tom' =&gt; 'Jones',
 'Richard' =&gt; 'Smith',
 'Harrold' =&gt; 'Jackson',
)
Jul DD HH:MM:SS symfony [debug]
************************
* Methods for sfConfig *
************************
sfConfig::get
sfConfig::has
sfConfig::set
sfConfig::add
sfConfig::getAll
sfConfig::clear</pre>
</div>
</div>
<p>Here is the code. Simply drop it into a file in your project&#8217;s lib directory (I placed it into a util subdirectory) and clear your cache to start using it.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
<span class="co4">/**
 * Pretty Simple Logger
 *
 * @package util
 * @author Phazeon Phoenix &lt;phoenix@phazeon.com&gt;
 * @copyright 2009 Phazeon.com
 * @version 1
 */</span>
<span class="kw2">class</span> L <span class="br0">&#123;</span>
&nbsp;
    static <span class="kw2">public</span> <span class="re0">$allowedMessageLevels</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'notice'</span><span class="sy0">,</span> <span class="st_h">'emerg'</span><span class="sy0">,</span> <span class="st_h">'alert'</span><span class="sy0">,</span>
                         <span class="st_h">'crit'</span><span class="sy0">,</span> <span class="st_h">'info'</span><span class="sy0">,</span> <span class="st_h">'debug'</span><span class="sy0">,</span> <span class="st_h">'err'</span><span class="sy0">,</span> <span class="st_h">'warning'</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="co4">/**
     * Log a message.
     *
     * @param mixed $message
     * @param string $level
     * @param boolean $pretty Does not add the star header if false.
     * @return void
     */</span>
    static <span class="kw2">public</span> <span class="kw2">function</span> <span class="kw3">log</span><span class="br0">&#40;</span><span class="re0">$message</span><span class="sy0">,</span> <span class="re0">$level</span> <span class="sy0">=</span> <span class="st_h">'debug'</span><span class="sy0">,</span> <span class="re0">$pretty</span> <span class="sy0">=</span> <span class="kw4">true</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        <span class="kw1">if</span> <span class="br0">&#40;</span>sfConfig<span class="sy0">::</span><span class="me2">get</span><span class="br0">&#40;</span><span class="st_h">'sf_logging_enabled'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="sy0">!</span> <span class="kw3">in_array</span><span class="br0">&#40;</span><span class="re0">$level</span><span class="sy0">,</span> <span class="kw2">self</span><span class="sy0">::</span><span class="re0">$allowedMessageLevels</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
                <span class="re0">$level</span> <span class="sy0">=</span> <span class="st_h">'debug'</span><span class="sy0">;</span>
            <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$pretty</span><span class="br0">&#41;</span>
                <span class="re0">$output</span> <span class="sy0">=</span> <span class="kw2">self</span><span class="sy0">::</span><span class="me2">prettyHeader</span><span class="br0">&#40;</span><span class="re0">$message</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="kw1">else</span>
                <span class="re0">$output</span> <span class="sy0">=</span> <span class="re0">$message</span><span class="sy0">;</span>
            sfContext<span class="sy0">::</span><span class="me2">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">getLogger</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="re0">$level</span><span class="br0">&#40;</span><span class="re0">$output</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
&nbsp;
    <span class="co4">/**
     * Dump a variable to the log.
     *
     * Known Limitation: Variables that are too large, such as many of the
     * Symfony core classes, will cause this function to fail. This is a
     * limitation of var_export(). If you need to dump such a variable, use
     * print_r(). It's ugly but it'll work no matter how large the variable is.
     *
     * @param mixed $var
     * @param mixed $message
     * @param string $level
     * @return void
     */</span>
    static <span class="kw2">public</span> <span class="kw2">function</span> dump<span class="br0">&#40;</span><span class="re0">$var</span><span class="sy0">,</span> <span class="re0">$message</span> <span class="sy0">=</span> <span class="kw4">null</span><span class="sy0">,</span>  <span class="re0">$level</span> <span class="sy0">=</span> <span class="st_h">'debug'</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        <span class="kw1">if</span> <span class="br0">&#40;</span>sfConfig<span class="sy0">::</span><span class="me2">get</span><span class="br0">&#40;</span><span class="st_h">'sf_logging_enabled'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="re0">$output</span> <span class="sy0">=</span> <span class="kw2">self</span><span class="sy0">::</span><span class="me2">prettyHeader</span><span class="br0">&#40;</span><span class="st0">&quot;Variable Dump <span class="es4">$message</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="re0">$output</span> <span class="sy0">.=</span> <span class="kw3">var_export</span><span class="br0">&#40;</span><span class="re0">$var</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span>
            L<span class="sy0">::</span><span class="kw3">log</span><span class="br0">&#40;</span><span class="re0">$output</span><span class="sy0">,</span> <span class="re0">$level</span><span class="sy0">,</span> <span class="kw4">false</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
&nbsp;
    <span class="co4">/**
     * Output all publicly accessable methods of a class.
     *
     * @param mixed $class
     * @param mixed $message
     * @param string $level
     * @return void
     */</span>
    static <span class="kw2">public</span> <span class="kw2">function</span> methods<span class="br0">&#40;</span><span class="re0">$class</span><span class="sy0">,</span> <span class="re0">$message</span> <span class="sy0">=</span> <span class="kw4">null</span><span class="sy0">,</span>  <span class="re0">$level</span> <span class="sy0">=</span> <span class="st_h">'debug'</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        <span class="kw1">if</span> <span class="br0">&#40;</span>sfConfig<span class="sy0">::</span><span class="me2">get</span><span class="br0">&#40;</span><span class="st_h">'sf_logging_enabled'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="re0">$class</span> <span class="sy0">=</span> <span class="kw3">get_class</span><span class="br0">&#40;</span><span class="re0">$class</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="re0">$output</span> <span class="sy0">=</span> <span class="kw2">self</span><span class="sy0">::</span><span class="me2">prettyHeader</span><span class="br0">&#40;</span><span class="st0">&quot;Methods for <span class="es4">$class</span> <span class="es4">$message</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="re0">$methods</span> <span class="sy0">=</span> <span class="kw3">get_class_methods</span><span class="br0">&#40;</span><span class="re0">$class</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$methods</span> <span class="kw1">as</span> <span class="re0">$method</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span class="re0">$output</span> <span class="sy0">.=</span> <span class="st0">&quot;<span class="es4">$class</span>::<span class="es4">$method</span><span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
            <span class="br0">&#125;</span>
            L<span class="sy0">::</span><span class="kw3">log</span><span class="br0">&#40;</span><span class="re0">$output</span><span class="sy0">,</span> <span class="re0">$level</span><span class="sy0">,</span> <span class="kw4">false</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
&nbsp;
    <span class="co4">/**
     * Build a string padded and surrounded by stars.
     *
     * @param mixed $text
     * @return string
     */</span>
    static <span class="kw2">public</span> <span class="kw2">function</span> prettyHeader<span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="re0">$stars</span> <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span>
        <span class="re0">$text</span> <span class="sy0">=</span> <span class="st0">&quot;* &quot;</span> <span class="sy0">.</span> <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st0">&quot; *&quot;</span><span class="sy0">;</span>
        <span class="re0">$stars</span> <span class="sy0">=</span> <span class="kw3">str_repeat</span><span class="br0">&#40;</span><span class="st_h">'*'</span><span class="sy0">,</span> <span class="kw3">strlen</span><span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw1">return</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span> <span class="sy0">.</span> <span class="re0">$stars</span> <span class="sy0">.</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span> <span class="sy0">.</span> <span class="re0">$text</span> <span class="sy0">.</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span> <span class="sy0">.</span> <span class="re0">$stars</span> <span class="sy0">.</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div>




Share and Enjoy:


	<a rel="nofollow" id="print" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="email" target="_blank" href="javascript:window.location='mailto%3A%3Fsubject%3DSimple%2520Logging%2520Utility%2520Class%2520for%2520Symfony%26amp%3Bbody%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F';" title="E-mail this story to a friend!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="rss" target="_blank" href="javascript:window.location='http%3A%2F%2Fphazeon.com%2Ffeed%2F';" title="RSS"><img src="http://phazeon.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F%26amp%3Btitle%3DSimple%2520Logging%2520Utility%2520Class%2520for%2520Symfony%26amp%3Bbodytext%3DA%2520simple%2520PHP%2520class%2520to%2520make%2520logging%2520in%2520Symfony%2520a%2520little%2520more%2520straight%2520forward.';" title="Digg"><img src="http://phazeon.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F%26amp%3Btitle%3DSimple%2520Logging%2520Utility%2520Class%2520for%2520Symfony%26amp%3Bnotes%3DA%2520simple%2520PHP%2520class%2520to%2520make%2520logging%2520in%2520Symfony%2520a%2520little%2520more%2520straight%2520forward.';" title="del.icio.us"><img src="http://phazeon.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="google" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F%26amp%3Btitle%3DSimple%2520Logging%2520Utility%2520Class%2520for%2520Symfony%26amp%3Bannotation%3DA%2520simple%2520PHP%2520class%2520to%2520make%2520logging%2520in%2520Symfony%2520a%2520little%2520more%2520straight%2520forward.';" title="Google Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoo! bookmarks" target="_blank" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F%26amp%3Bt%3DSimple%2520Logging%2520Utility%2520Class%2520for%2520Symfony%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DA%2520simple%2520PHP%2520class%2520to%2520make%2520logging%2520in%2520Symfony%2520a%2520little%2520more%2520straight%2520forward.';" title="Yahoo! Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="javascript:window.location='http%3A%2F%2Fbuzz.yahoo.com%2Fsubmit%2F%3FsubmitUrl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F%26amp%3BsubmitHeadline%3DSimple%2520Logging%2520Utility%2520Class%2520for%2520Symfony%26amp%3BsubmitSummary%3DA%2520simple%2520PHP%2520class%2520to%2520make%2520logging%2520in%2520Symfony%2520a%2520little%2520more%2520straight%2520forward.%26amp%3BsubmitCategory%3Dscience%26amp%3BsubmitAssetType%3Dtext';" title="Yahoo! Buzz"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="live" target="_blank" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F%26amp%3Btitle%3DSimple%2520Logging%2520Utility%2520Class%2520for%2520Symfony';" title="Live"><img src="http://phazeon.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow" id="stumbleupon" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F%26amp%3Btitle%3DSimple%2520Logging%2520Utility%2520Class%2520for%2520Symfony';" title="StumbleUpon"><img src="http://phazeon.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" id="technorati" target="_blank" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F10%252Fsimple-logging-utility-class-for-symfony%252F';" title="Technorati"><img src="http://phazeon.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://phazeon.com/2009/07/10/simple-logging-utility-class-for-symfony/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony Template and Component Templates</title>
		<link>http://phazeon.com/2009/07/06/symfony-template-and-component-templates/</link>
		<comments>http://phazeon.com/2009/07/06/symfony-template-and-component-templates/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 19:39:02 +0000</pubDate>
		<dc:creator>PhazeonPhoenix</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://phazeon.com/?p=100</guid>
		<description><![CDATA[Two free templates for Symfony Components and Templates.]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve got a pair of small templates.</p>
<p>The first is a comment header for the Symfony template files.  Due to the shear number of these template files you can create if you&#8217;re partial and component happy, sometimes just the filename isn&#8217;t enough to really describe what file your editing. My motto is you can never have too much documentation.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
<span class="co4">/**
 * Template Template
 * 
 * @author Phazeon Phoenix &lt;phoenix@phazeon.com&gt;
 * @version 1
 * @package Templates
 * @copyright 2009 Phazeon.com
 */</span>
<span class="sy1">?&gt;</span>
&lt;h2&gt;My Template&lt;/h2&gt;</pre></td></tr></table></div>

<p>Next is a template for new components.  This is the sort of thing that I always had trouble remembering. I had to track down the exact syntax for the component class declaration each time.  Now in my IDE (<a href="http://www.mpsoftware.dk/phpdesigner.php" target="_blank">phpDesigner</a>) I can define user entered variables in my snippets/templates.  It prompts me for the model name and the method name minus the &#8220;execute&#8221; prefix.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
<span class="co4">/**
 * Component Template
 * 
 * @author Phazeon Phoenix &lt;phoenix@phazeon.com&gt;
 * @version 1
 * @package Components
 * @copyright 2009 Phazeon.com
 */</span>
&nbsp;
<span class="kw2">class</span> templateComponents <span class="kw2">extends</span> sfComponents
<span class="br0">&#123;</span>
    <span class="kw2">public</span> <span class="kw2">function</span> executeSomething<span class="br0">&#40;</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
&nbsp;
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div>




Share and Enjoy:


	<a rel="nofollow" id="print" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="email" target="_blank" href="javascript:window.location='mailto%3A%3Fsubject%3DSymfony%2520Template%2520and%2520Component%2520Templates%26amp%3Bbody%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F';" title="E-mail this story to a friend!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="rss" target="_blank" href="javascript:window.location='http%3A%2F%2Fphazeon.com%2Ffeed%2F';" title="RSS"><img src="http://phazeon.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F%26amp%3Btitle%3DSymfony%2520Template%2520and%2520Component%2520Templates%26amp%3Bbodytext%3DTwo%2520free%2520templates%2520for%2520Symfony%2520Components%2520and%2520Templates.';" title="Digg"><img src="http://phazeon.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F%26amp%3Btitle%3DSymfony%2520Template%2520and%2520Component%2520Templates%26amp%3Bnotes%3DTwo%2520free%2520templates%2520for%2520Symfony%2520Components%2520and%2520Templates.';" title="del.icio.us"><img src="http://phazeon.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="google" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F%26amp%3Btitle%3DSymfony%2520Template%2520and%2520Component%2520Templates%26amp%3Bannotation%3DTwo%2520free%2520templates%2520for%2520Symfony%2520Components%2520and%2520Templates.';" title="Google Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoo! bookmarks" target="_blank" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F%26amp%3Bt%3DSymfony%2520Template%2520and%2520Component%2520Templates%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DTwo%2520free%2520templates%2520for%2520Symfony%2520Components%2520and%2520Templates.';" title="Yahoo! Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="javascript:window.location='http%3A%2F%2Fbuzz.yahoo.com%2Fsubmit%2F%3FsubmitUrl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F%26amp%3BsubmitHeadline%3DSymfony%2520Template%2520and%2520Component%2520Templates%26amp%3BsubmitSummary%3DTwo%2520free%2520templates%2520for%2520Symfony%2520Components%2520and%2520Templates.%26amp%3BsubmitCategory%3Dscience%26amp%3BsubmitAssetType%3Dtext';" title="Yahoo! Buzz"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="live" target="_blank" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F%26amp%3Btitle%3DSymfony%2520Template%2520and%2520Component%2520Templates';" title="Live"><img src="http://phazeon.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow" id="stumbleupon" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F%26amp%3Btitle%3DSymfony%2520Template%2520and%2520Component%2520Templates';" title="StumbleUpon"><img src="http://phazeon.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" id="technorati" target="_blank" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F06%252Fsymfony-template-and-component-templates%252F';" title="Technorati"><img src="http://phazeon.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://phazeon.com/2009/07/06/symfony-template-and-component-templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony 1.1+ Form Template</title>
		<link>http://phazeon.com/2009/07/04/symfony-1-1-form-template/</link>
		<comments>http://phazeon.com/2009/07/04/symfony-1-1-form-template/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 21:00:24 +0000</pubDate>
		<dc:creator>PhazeonPhoenix</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://phazeon.com/?p=90</guid>
		<description><![CDATA[A free template for form classes for the Symfony PHP framework.]]></description>
			<content:encoded><![CDATA[<p>In my work with Symfony I&#8217;ve started collecting a library of code snippets that I use to speed up my creation of different objects in the Symfony tree. Since most of them are cut and splices of other people&#8217;s code (especially the Symfony documentation) I&#8217;m going to start posting some of the better ones on my blog.</p>
<p>The one that I&#8217;m going to share today involves the creation of a form class for the new form handling classes added in Symfony 1.1.  I found myself constantly having to go back to the form and adding the sections that I needed but forgot the list time I was working it. I created this template and included all of the options I felt I&#8217;d need to declare to correctly implement a nice looking and behaving form.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
<span class="co4">/**
 * Template Form
 * 
 * @author Phazeon Phoenix &lt;phoenix@phazeon.com&gt;
 * @version 1
 * @copyright 2009 Phazeon.com
 * @package Forms
 */</span>
<span class="kw2">class</span> templateForm <span class="kw2">extends</span> sfForm
<span class="br0">&#123;</span>
    <span class="kw2">public</span> <span class="kw2">function</span> configure<span class="br0">&#40;</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">setWidgets</span><span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span>
&nbsp;
        <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">setValidators</span><span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span>
&nbsp;
        <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">setDefaults</span><span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span>
&nbsp;
        <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">widgetSchema</span><span class="sy0">-&gt;</span><span class="me1">setLabels</span><span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span>
&nbsp;
        <span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">widgetSchema</span><span class="sy0">-&gt;</span><span class="me1">setFormFormatterName</span><span class="br0">&#40;</span><span class="st_h">'list'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">widgetSchema</span><span class="sy0">-&gt;</span><span class="me1">setNameFormat</span><span class="br0">&#40;</span><span class="st_h">'template[%s]'</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div>




Share and Enjoy:


	<a rel="nofollow" id="print" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="email" target="_blank" href="javascript:window.location='mailto%3A%3Fsubject%3DSymfony%25201.1%252B%2520Form%2520Template%26amp%3Bbody%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F';" title="E-mail this story to a friend!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="rss" target="_blank" href="javascript:window.location='http%3A%2F%2Fphazeon.com%2Ffeed%2F';" title="RSS"><img src="http://phazeon.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F%26amp%3Btitle%3DSymfony%25201.1%252B%2520Form%2520Template%26amp%3Bbodytext%3DA%2520free%2520template%2520for%2520form%2520classes%2520for%2520the%2520Symfony%2520PHP%2520framework.';" title="Digg"><img src="http://phazeon.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F%26amp%3Btitle%3DSymfony%25201.1%252B%2520Form%2520Template%26amp%3Bnotes%3DA%2520free%2520template%2520for%2520form%2520classes%2520for%2520the%2520Symfony%2520PHP%2520framework.';" title="del.icio.us"><img src="http://phazeon.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="google" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F%26amp%3Btitle%3DSymfony%25201.1%252B%2520Form%2520Template%26amp%3Bannotation%3DA%2520free%2520template%2520for%2520form%2520classes%2520for%2520the%2520Symfony%2520PHP%2520framework.';" title="Google Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoo! bookmarks" target="_blank" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F%26amp%3Bt%3DSymfony%25201.1%252B%2520Form%2520Template%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DA%2520free%2520template%2520for%2520form%2520classes%2520for%2520the%2520Symfony%2520PHP%2520framework.';" title="Yahoo! Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="javascript:window.location='http%3A%2F%2Fbuzz.yahoo.com%2Fsubmit%2F%3FsubmitUrl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F%26amp%3BsubmitHeadline%3DSymfony%25201.1%252B%2520Form%2520Template%26amp%3BsubmitSummary%3DA%2520free%2520template%2520for%2520form%2520classes%2520for%2520the%2520Symfony%2520PHP%2520framework.%26amp%3BsubmitCategory%3Dscience%26amp%3BsubmitAssetType%3Dtext';" title="Yahoo! Buzz"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="live" target="_blank" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F%26amp%3Btitle%3DSymfony%25201.1%252B%2520Form%2520Template';" title="Live"><img src="http://phazeon.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow" id="stumbleupon" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F%26amp%3Btitle%3DSymfony%25201.1%252B%2520Form%2520Template';" title="StumbleUpon"><img src="http://phazeon.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" id="technorati" target="_blank" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F07%252F04%252Fsymfony-1-1-form-template%252F';" title="Technorati"><img src="http://phazeon.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://phazeon.com/2009/07/04/symfony-1-1-form-template/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Symfony Project Woes</title>
		<link>http://phazeon.com/2009/06/16/new-symfony-project-woes/</link>
		<comments>http://phazeon.com/2009/06/16/new-symfony-project-woes/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 21:59:53 +0000</pubDate>
		<dc:creator>PhazeonPhoenix</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://phazeon.com/?p=70</guid>
		<description><![CDATA[Generating a new Symfony framework project is as simple as a single command. But as with many things it rarely works the way you want out of the box. I&#8217;ve documented every step and every command that I end up running on a new project to ensure that it behaves the way it should and [...]]]></description>
			<content:encoded><![CDATA[<p>Generating a new Symfony framework project is as simple as a single command. But as with many things it rarely works the way you want out of the box. I&#8217;ve documented every step and every command that I end up running on a new project to ensure that it behaves the way it should and I ended up with a 30 point list! I have to initialize the project, modify several files to enable things such as the Doctrine ORM plugin, install several plugins such as the sfDoctrineGuard authentication plugin, SVN version control taking careful steps to avoid placing the cache, logs, and the base model classes under revision, and set up my development environment for the new project.</p>
<p>I need to work on a way to automate as much as I can of the process. The tricky thing is that certain commands need to be executed as root (inlcuding rebooting the web server) and that throws a monkey wrench in the gears of that idea.  Certainly one could create a script and SUID root, but that is going to require extensive care to ensure that the process is handled gracefully if it fails for whatever reason.  It&#8217;s a large undertaking to say the least. I guess I have to weigh the time spent each new project vs. coding such a script.</p>



Share and Enjoy:


	<a rel="nofollow" id="print" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="email" target="_blank" href="javascript:window.location='mailto%3A%3Fsubject%3DNew%2520Symfony%2520Project%2520Woes%26amp%3Bbody%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F';" title="E-mail this story to a friend!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="rss" target="_blank" href="javascript:window.location='http%3A%2F%2Fphazeon.com%2Ffeed%2F';" title="RSS"><img src="http://phazeon.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F%26amp%3Btitle%3DNew%2520Symfony%2520Project%2520Woes%26amp%3Bbodytext%3DGenerating%2520a%2520new%2520Symfony%2520framework%2520project%2520is%2520as%2520simple%2520as%2520a%2520single%2520command.%2520But%2520as%2520with%2520many%2520things%2520it%2520rarely%2520works%2520the%2520way%2520you%2520want%2520out%2520of%2520the%2520box.%2520I%2527ve%2520documented%2520every%2520step%2520and%2520every%2520command%2520that%2520I%2520end%2520up%2520running%2520on%2520a%2520new%2520project%2520to%2520ensure%2520that%2520i';" title="Digg"><img src="http://phazeon.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F%26amp%3Btitle%3DNew%2520Symfony%2520Project%2520Woes%26amp%3Bnotes%3DGenerating%2520a%2520new%2520Symfony%2520framework%2520project%2520is%2520as%2520simple%2520as%2520a%2520single%2520command.%2520But%2520as%2520with%2520many%2520things%2520it%2520rarely%2520works%2520the%2520way%2520you%2520want%2520out%2520of%2520the%2520box.%2520I%2527ve%2520documented%2520every%2520step%2520and%2520every%2520command%2520that%2520I%2520end%2520up%2520running%2520on%2520a%2520new%2520project%2520to%2520ensure%2520that%2520i';" title="del.icio.us"><img src="http://phazeon.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="google" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F%26amp%3Btitle%3DNew%2520Symfony%2520Project%2520Woes%26amp%3Bannotation%3DGenerating%2520a%2520new%2520Symfony%2520framework%2520project%2520is%2520as%2520simple%2520as%2520a%2520single%2520command.%2520But%2520as%2520with%2520many%2520things%2520it%2520rarely%2520works%2520the%2520way%2520you%2520want%2520out%2520of%2520the%2520box.%2520I%2527ve%2520documented%2520every%2520step%2520and%2520every%2520command%2520that%2520I%2520end%2520up%2520running%2520on%2520a%2520new%2520project%2520to%2520ensure%2520that%2520i';" title="Google Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoo! bookmarks" target="_blank" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F%26amp%3Bt%3DNew%2520Symfony%2520Project%2520Woes%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DGenerating%2520a%2520new%2520Symfony%2520framework%2520project%2520is%2520as%2520simple%2520as%2520a%2520single%2520command.%2520But%2520as%2520with%2520many%2520things%2520it%2520rarely%2520works%2520the%2520way%2520you%2520want%2520out%2520of%2520the%2520box.%2520I%2527ve%2520documented%2520every%2520step%2520and%2520every%2520command%2520that%2520I%2520end%2520up%2520running%2520on%2520a%2520new%2520project%2520to%2520ensure%2520that%2520i';" title="Yahoo! Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="javascript:window.location='http%3A%2F%2Fbuzz.yahoo.com%2Fsubmit%2F%3FsubmitUrl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F%26amp%3BsubmitHeadline%3DNew%2520Symfony%2520Project%2520Woes%26amp%3BsubmitSummary%3DGenerating%2520a%2520new%2520Symfony%2520framework%2520project%2520is%2520as%2520simple%2520as%2520a%2520single%2520command.%2520But%2520as%2520with%2520many%2520things%2520it%2520rarely%2520works%2520the%2520way%2520you%2520want%2520out%2520of%2520the%2520box.%2520I%2527ve%2520documented%2520every%2520step%2520and%2520every%2520command%2520that%2520I%2520end%2520up%2520running%2520on%2520a%2520new%2520project%2520to%2520ensure%2520that%2520i%26amp%3BsubmitCategory%3Dscience%26amp%3BsubmitAssetType%3Dtext';" title="Yahoo! Buzz"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="live" target="_blank" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F%26amp%3Btitle%3DNew%2520Symfony%2520Project%2520Woes';" title="Live"><img src="http://phazeon.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow" id="stumbleupon" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F%26amp%3Btitle%3DNew%2520Symfony%2520Project%2520Woes';" title="StumbleUpon"><img src="http://phazeon.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" id="technorati" target="_blank" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F16%252Fnew-symfony-project-woes%252F';" title="Technorati"><img src="http://phazeon.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://phazeon.com/2009/06/16/new-symfony-project-woes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>actAs: Accountable Doctrine Behaviour</title>
		<link>http://phazeon.com/2009/06/08/actas-accountable-doctrine-behaviour/</link>
		<comments>http://phazeon.com/2009/06/08/actas-accountable-doctrine-behaviour/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 17:46:18 +0000</pubDate>
		<dc:creator>PhazeonPhoenix</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[accountable]]></category>
		<category><![CDATA[behaviours]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://phazeon.com/?p=50</guid>
		<description><![CDATA[It was fairly easy to create a Signable behaviour and it was done within a couple days.  I soon realized though that the behavior of the SoftDelete behaviour wasn&#8217;t quite what I wanted. It only adds a &#8220;deleted&#8221; boolean field to the DB. I also wanted to know who deleted it and what time it [...]]]></description>
			<content:encoded><![CDATA[<p>It was fairly easy to create a Signable behaviour and it was done within a couple days.  I soon realized though that the behavior of the SoftDelete behaviour wasn&#8217;t quite what I wanted. It only adds a &#8220;deleted&#8221; boolean field to the DB. I also wanted to know who deleted it and what time it was deleted.  I decided to expand SoftDelete and make it use a timestamp instead of a boolean. That part worked too.</p>
<p>The problem I soon ran into was with when I combined SoftDelete and Signable with it&#8217;s new preDelete hook.  Seems since SoftDelete stops the preDelete event it doesn&#8217;t let the Signable code execute properly.  I decided that the correct answer to the problem was to create a whole new behaviour which would combine not only SoftDelete and Signable but also Timestampable.  I called it Accountable since it&#8217;s primary function is to keep record of who touched an object.</p>
<p>I did a manual test and so far it&#8217;s worked as planned.  I&#8217;m not yet sure of the SoftDelete filters&#8230; I made a change to preDqlDelete and preDqlSelect and I&#8217;m not quite sure if it still works. Time will tell I&#8217;m sure. Once I&#8217;m more certain this code is solid I&#8217;ll give more information on it.</p>



Share and Enjoy:


	<a rel="nofollow" id="print" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="email" target="_blank" href="javascript:window.location='mailto%3A%3Fsubject%3DactAs%253A%2520Accountable%2520Doctrine%2520Behaviour%26amp%3Bbody%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F';" title="E-mail this story to a friend!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="rss" target="_blank" href="javascript:window.location='http%3A%2F%2Fphazeon.com%2Ffeed%2F';" title="RSS"><img src="http://phazeon.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F%26amp%3Btitle%3DactAs%253A%2520Accountable%2520Doctrine%2520Behaviour%26amp%3Bbodytext%3DIt%2520was%2520fairly%2520easy%2520to%2520create%2520a%2520Signable%2520behaviour%2520and%2520it%2520was%2520done%2520within%2520a%2520couple%2520days.%25C2%25A0%2520I%2520soon%2520realized%2520though%2520that%2520the%2520behavior%2520of%2520the%2520SoftDelete%2520behaviour%2520wasn%2527t%2520quite%2520what%2520I%2520wanted.%2520It%2520only%2520adds%2520a%2520%2522deleted%2522%2520boolean%2520field%2520to%2520the%2520DB.%2520I%2520also%2520wanted';" title="Digg"><img src="http://phazeon.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F%26amp%3Btitle%3DactAs%253A%2520Accountable%2520Doctrine%2520Behaviour%26amp%3Bnotes%3DIt%2520was%2520fairly%2520easy%2520to%2520create%2520a%2520Signable%2520behaviour%2520and%2520it%2520was%2520done%2520within%2520a%2520couple%2520days.%25C2%25A0%2520I%2520soon%2520realized%2520though%2520that%2520the%2520behavior%2520of%2520the%2520SoftDelete%2520behaviour%2520wasn%2527t%2520quite%2520what%2520I%2520wanted.%2520It%2520only%2520adds%2520a%2520%2522deleted%2522%2520boolean%2520field%2520to%2520the%2520DB.%2520I%2520also%2520wanted';" title="del.icio.us"><img src="http://phazeon.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="google" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F%26amp%3Btitle%3DactAs%253A%2520Accountable%2520Doctrine%2520Behaviour%26amp%3Bannotation%3DIt%2520was%2520fairly%2520easy%2520to%2520create%2520a%2520Signable%2520behaviour%2520and%2520it%2520was%2520done%2520within%2520a%2520couple%2520days.%25C2%25A0%2520I%2520soon%2520realized%2520though%2520that%2520the%2520behavior%2520of%2520the%2520SoftDelete%2520behaviour%2520wasn%2527t%2520quite%2520what%2520I%2520wanted.%2520It%2520only%2520adds%2520a%2520%2522deleted%2522%2520boolean%2520field%2520to%2520the%2520DB.%2520I%2520also%2520wanted';" title="Google Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoo! bookmarks" target="_blank" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F%26amp%3Bt%3DactAs%253A%2520Accountable%2520Doctrine%2520Behaviour%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DIt%2520was%2520fairly%2520easy%2520to%2520create%2520a%2520Signable%2520behaviour%2520and%2520it%2520was%2520done%2520within%2520a%2520couple%2520days.%25C2%25A0%2520I%2520soon%2520realized%2520though%2520that%2520the%2520behavior%2520of%2520the%2520SoftDelete%2520behaviour%2520wasn%2527t%2520quite%2520what%2520I%2520wanted.%2520It%2520only%2520adds%2520a%2520%2522deleted%2522%2520boolean%2520field%2520to%2520the%2520DB.%2520I%2520also%2520wanted';" title="Yahoo! Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="javascript:window.location='http%3A%2F%2Fbuzz.yahoo.com%2Fsubmit%2F%3FsubmitUrl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F%26amp%3BsubmitHeadline%3DactAs%253A%2520Accountable%2520Doctrine%2520Behaviour%26amp%3BsubmitSummary%3DIt%2520was%2520fairly%2520easy%2520to%2520create%2520a%2520Signable%2520behaviour%2520and%2520it%2520was%2520done%2520within%2520a%2520couple%2520days.%25C2%25A0%2520I%2520soon%2520realized%2520though%2520that%2520the%2520behavior%2520of%2520the%2520SoftDelete%2520behaviour%2520wasn%2527t%2520quite%2520what%2520I%2520wanted.%2520It%2520only%2520adds%2520a%2520%2522deleted%2522%2520boolean%2520field%2520to%2520the%2520DB.%2520I%2520also%2520wanted%26amp%3BsubmitCategory%3Dscience%26amp%3BsubmitAssetType%3Dtext';" title="Yahoo! Buzz"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="live" target="_blank" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F%26amp%3Btitle%3DactAs%253A%2520Accountable%2520Doctrine%2520Behaviour';" title="Live"><img src="http://phazeon.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow" id="stumbleupon" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F%26amp%3Btitle%3DactAs%253A%2520Accountable%2520Doctrine%2520Behaviour';" title="StumbleUpon"><img src="http://phazeon.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" id="technorati" target="_blank" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F08%252Factas-accountable-doctrine-behaviour%252F';" title="Technorati"><img src="http://phazeon.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://phazeon.com/2009/06/08/actas-accountable-doctrine-behaviour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doctrine Behaviours</title>
		<link>http://phazeon.com/2009/06/06/doctrine-behaviours/</link>
		<comments>http://phazeon.com/2009/06/06/doctrine-behaviours/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 21:32:34 +0000</pubDate>
		<dc:creator>PhazeonPhoenix</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[behaviours]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://phazeon.com/?p=47</guid>
		<description><![CDATA[I&#8217;m finding that I need to write a couple behaviors that for some reason are not in the default distribution.  The features I&#8217;m needing in particular are &#8220;Signable&#8221; to add created_by, updated_by and deleted_by to each table, and &#8220;Commentable&#8221; to handle the comments that you&#8217;re going to be able to post on almost every single [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m finding that I need to write a couple behaviors that for some reason are not in the default distribution.  The features I&#8217;m needing in particular are &#8220;Signable&#8221; to add created_by, updated_by and deleted_by to each table, and &#8220;Commentable&#8221; to handle the comments that you&#8217;re going to be able to post on almost every single object.</p>
<p>Thankfully the best way for me to learn is to find an example.  I&#8217;m going to modify the code for &#8220;Timestampable&#8221; for &#8220;Signable&#8221; and I think I&#8217;m going to look at <a href="http://www.symfony-project.org/plugins/csDoctrineActAsAttachablePlugin" target="_blank">csDoctrineActAsAttachablePlugin</a> for how it behaves and build from it to make &#8220;Commentable&#8221;.  I might even release it to the community.</p>
<p>Doctrine Behaviours are fairly new to me but I understand what&#8217;s going on for sure.  Behaviours allow you to modularize your reusable database code.  In my examples, I need to be able to keep track of who created, updated, and/or deleted an item.  Instead of adding that bit of code to each model by hand, I can cut it out and make a Behaviour that I then attach to each model.</p>



Share and Enjoy:


	<a rel="nofollow" id="print" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="email" target="_blank" href="javascript:window.location='mailto%3A%3Fsubject%3DDoctrine%2520Behaviours%26amp%3Bbody%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F';" title="E-mail this story to a friend!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="rss" target="_blank" href="javascript:window.location='http%3A%2F%2Fphazeon.com%2Ffeed%2F';" title="RSS"><img src="http://phazeon.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F%26amp%3Btitle%3DDoctrine%2520Behaviours%26amp%3Bbodytext%3DI%2527m%2520finding%2520that%2520I%2520need%2520to%2520write%2520a%2520couple%2520behaviors%2520that%2520for%2520some%2520reason%2520are%2520not%2520in%2520the%2520default%2520distribution.%25C2%25A0%2520The%2520features%2520I%2527m%2520needing%2520in%2520particular%2520are%2520%2522Signable%2522%2520to%2520add%2520created_by%252C%2520updated_by%2520and%2520deleted_by%2520to%2520each%2520table%252C%2520and%2520%2522Commentable%2522%2520to%2520han';" title="Digg"><img src="http://phazeon.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F%26amp%3Btitle%3DDoctrine%2520Behaviours%26amp%3Bnotes%3DI%2527m%2520finding%2520that%2520I%2520need%2520to%2520write%2520a%2520couple%2520behaviors%2520that%2520for%2520some%2520reason%2520are%2520not%2520in%2520the%2520default%2520distribution.%25C2%25A0%2520The%2520features%2520I%2527m%2520needing%2520in%2520particular%2520are%2520%2522Signable%2522%2520to%2520add%2520created_by%252C%2520updated_by%2520and%2520deleted_by%2520to%2520each%2520table%252C%2520and%2520%2522Commentable%2522%2520to%2520han';" title="del.icio.us"><img src="http://phazeon.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="google" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F%26amp%3Btitle%3DDoctrine%2520Behaviours%26amp%3Bannotation%3DI%2527m%2520finding%2520that%2520I%2520need%2520to%2520write%2520a%2520couple%2520behaviors%2520that%2520for%2520some%2520reason%2520are%2520not%2520in%2520the%2520default%2520distribution.%25C2%25A0%2520The%2520features%2520I%2527m%2520needing%2520in%2520particular%2520are%2520%2522Signable%2522%2520to%2520add%2520created_by%252C%2520updated_by%2520and%2520deleted_by%2520to%2520each%2520table%252C%2520and%2520%2522Commentable%2522%2520to%2520han';" title="Google Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoo! bookmarks" target="_blank" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F%26amp%3Bt%3DDoctrine%2520Behaviours%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DI%2527m%2520finding%2520that%2520I%2520need%2520to%2520write%2520a%2520couple%2520behaviors%2520that%2520for%2520some%2520reason%2520are%2520not%2520in%2520the%2520default%2520distribution.%25C2%25A0%2520The%2520features%2520I%2527m%2520needing%2520in%2520particular%2520are%2520%2522Signable%2522%2520to%2520add%2520created_by%252C%2520updated_by%2520and%2520deleted_by%2520to%2520each%2520table%252C%2520and%2520%2522Commentable%2522%2520to%2520han';" title="Yahoo! Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="javascript:window.location='http%3A%2F%2Fbuzz.yahoo.com%2Fsubmit%2F%3FsubmitUrl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F%26amp%3BsubmitHeadline%3DDoctrine%2520Behaviours%26amp%3BsubmitSummary%3DI%2527m%2520finding%2520that%2520I%2520need%2520to%2520write%2520a%2520couple%2520behaviors%2520that%2520for%2520some%2520reason%2520are%2520not%2520in%2520the%2520default%2520distribution.%25C2%25A0%2520The%2520features%2520I%2527m%2520needing%2520in%2520particular%2520are%2520%2522Signable%2522%2520to%2520add%2520created_by%252C%2520updated_by%2520and%2520deleted_by%2520to%2520each%2520table%252C%2520and%2520%2522Commentable%2522%2520to%2520han%26amp%3BsubmitCategory%3Dscience%26amp%3BsubmitAssetType%3Dtext';" title="Yahoo! Buzz"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="live" target="_blank" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F%26amp%3Btitle%3DDoctrine%2520Behaviours';" title="Live"><img src="http://phazeon.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow" id="stumbleupon" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F%26amp%3Btitle%3DDoctrine%2520Behaviours';" title="StumbleUpon"><img src="http://phazeon.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" id="technorati" target="_blank" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F06%252Fdoctrine-behaviours%252F';" title="Technorati"><img src="http://phazeon.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://phazeon.com/2009/06/06/doctrine-behaviours/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Database Schema and Doctrine Model planning</title>
		<link>http://phazeon.com/2009/06/03/database-schema-and-doctrine-model-planning/</link>
		<comments>http://phazeon.com/2009/06/03/database-schema-and-doctrine-model-planning/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 06:50:48 +0000</pubDate>
		<dc:creator>PhazeonPhoenix</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[schema]]></category>

		<guid isPermaLink="false">http://phazeon.com/?p=43</guid>
		<description><![CDATA[Today I did some major database planning for a major project I&#8217;m working on and it&#8217;s quite an interesting process. You have to take such a large concept as every bit of information your application might need to store and slicing that into smaller pieces to create the tables and models needed to access and [...]]]></description>
			<content:encoded><![CDATA[<p>Today I did some major database planning for a major project I&#8217;m working on and it&#8217;s quite an interesting process. You have to take such a large concept as every bit of information your application might need to store and slicing that into smaller pieces to create the tables and models needed to access and process them.</p>
<p>I&#8217;m finding the best way to plan them out is to grab a piece of paper and something to write with and start scribbling.  Maybe it is low tech but whatever works you know.  I found myself creating what could have easily have been a flow chart spanning several pages. I started in one small area and quickly expanded to other less obvious and obscure tables I&#8217;d need. All while relaxing on my bed.</p>
<p>I started writing my schema file. This being my first real application of the <a href="http://www.doctrine-project.org/" target="_blank">Doctrine ORM</a> it was a bit slow going. The syntax for the schema.yml is a bit new to me. It took me a couple tries to get the correct relationships to form exactly the way I wanted. But so far so good.</p>



Share and Enjoy:


	<a rel="nofollow" id="print" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="email" target="_blank" href="javascript:window.location='mailto%3A%3Fsubject%3DDatabase%2520Schema%2520and%2520Doctrine%2520Model%2520planning%26amp%3Bbody%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F';" title="E-mail this story to a friend!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="rss" target="_blank" href="javascript:window.location='http%3A%2F%2Fphazeon.com%2Ffeed%2F';" title="RSS"><img src="http://phazeon.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F%26amp%3Btitle%3DDatabase%2520Schema%2520and%2520Doctrine%2520Model%2520planning%26amp%3Bbodytext%3DToday%2520I%2520did%2520some%2520major%2520database%2520planning%2520for%2520a%2520major%2520project%2520I%2527m%2520working%2520on%2520and%2520it%2527s%2520quite%2520an%2520interesting%2520process.%2520You%2520have%2520to%2520take%2520such%2520a%2520large%2520concept%2520as%2520every%2520bit%2520of%2520information%2520your%2520application%2520might%2520need%2520to%2520store%2520and%2520slicing%2520that%2520into%2520smaller%2520pi';" title="Digg"><img src="http://phazeon.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F%26amp%3Btitle%3DDatabase%2520Schema%2520and%2520Doctrine%2520Model%2520planning%26amp%3Bnotes%3DToday%2520I%2520did%2520some%2520major%2520database%2520planning%2520for%2520a%2520major%2520project%2520I%2527m%2520working%2520on%2520and%2520it%2527s%2520quite%2520an%2520interesting%2520process.%2520You%2520have%2520to%2520take%2520such%2520a%2520large%2520concept%2520as%2520every%2520bit%2520of%2520information%2520your%2520application%2520might%2520need%2520to%2520store%2520and%2520slicing%2520that%2520into%2520smaller%2520pi';" title="del.icio.us"><img src="http://phazeon.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="google" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F%26amp%3Btitle%3DDatabase%2520Schema%2520and%2520Doctrine%2520Model%2520planning%26amp%3Bannotation%3DToday%2520I%2520did%2520some%2520major%2520database%2520planning%2520for%2520a%2520major%2520project%2520I%2527m%2520working%2520on%2520and%2520it%2527s%2520quite%2520an%2520interesting%2520process.%2520You%2520have%2520to%2520take%2520such%2520a%2520large%2520concept%2520as%2520every%2520bit%2520of%2520information%2520your%2520application%2520might%2520need%2520to%2520store%2520and%2520slicing%2520that%2520into%2520smaller%2520pi';" title="Google Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoo! bookmarks" target="_blank" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F%26amp%3Bt%3DDatabase%2520Schema%2520and%2520Doctrine%2520Model%2520planning%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DToday%2520I%2520did%2520some%2520major%2520database%2520planning%2520for%2520a%2520major%2520project%2520I%2527m%2520working%2520on%2520and%2520it%2527s%2520quite%2520an%2520interesting%2520process.%2520You%2520have%2520to%2520take%2520such%2520a%2520large%2520concept%2520as%2520every%2520bit%2520of%2520information%2520your%2520application%2520might%2520need%2520to%2520store%2520and%2520slicing%2520that%2520into%2520smaller%2520pi';" title="Yahoo! Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="javascript:window.location='http%3A%2F%2Fbuzz.yahoo.com%2Fsubmit%2F%3FsubmitUrl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F%26amp%3BsubmitHeadline%3DDatabase%2520Schema%2520and%2520Doctrine%2520Model%2520planning%26amp%3BsubmitSummary%3DToday%2520I%2520did%2520some%2520major%2520database%2520planning%2520for%2520a%2520major%2520project%2520I%2527m%2520working%2520on%2520and%2520it%2527s%2520quite%2520an%2520interesting%2520process.%2520You%2520have%2520to%2520take%2520such%2520a%2520large%2520concept%2520as%2520every%2520bit%2520of%2520information%2520your%2520application%2520might%2520need%2520to%2520store%2520and%2520slicing%2520that%2520into%2520smaller%2520pi%26amp%3BsubmitCategory%3Dscience%26amp%3BsubmitAssetType%3Dtext';" title="Yahoo! Buzz"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="live" target="_blank" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F%26amp%3Btitle%3DDatabase%2520Schema%2520and%2520Doctrine%2520Model%2520planning';" title="Live"><img src="http://phazeon.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow" id="stumbleupon" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F%26amp%3Btitle%3DDatabase%2520Schema%2520and%2520Doctrine%2520Model%2520planning';" title="StumbleUpon"><img src="http://phazeon.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" id="technorati" target="_blank" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F06%252F03%252Fdatabase-schema-and-doctrine-model-planning%252F';" title="Technorati"><img src="http://phazeon.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://phazeon.com/2009/06/03/database-schema-and-doctrine-model-planning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Authenticating to an Active Directory Domain</title>
		<link>http://phazeon.com/2009/05/30/authenticating-to-an-active-directory-domain/</link>
		<comments>http://phazeon.com/2009/05/30/authenticating-to-an-active-directory-domain/#comments</comments>
		<pubDate>Sun, 31 May 2009 01:56:34 +0000</pubDate>
		<dc:creator>PhazeonPhoenix</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[active directory]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[discussion]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://phazeon.com/?p=15</guid>
		<description><![CDATA[I&#8217;ve a project that needs to authenticate itself against a Windows Active Directory.  I&#8217;ve done this before and it&#8217;s not exactly the simplest thing to do.  I&#8217;ve used adLDAP before and it&#8217;s worked relatively well in my stand alone projects before I discovered MVC frameworks.  Now that I&#8217;m using symfony I&#8217;ve become quite fond at [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve a project that needs to authenticate itself against a Windows Active Directory.  I&#8217;ve done this before and it&#8217;s not exactly the simplest thing to do.  I&#8217;ve used <a href="http://adldap.sourceforge.net/" target="_blank">adLDAP</a> before and it&#8217;s worked relatively well in my stand alone projects before I discovered MVC frameworks.  Now that I&#8217;m using symfony I&#8217;ve become quite fond at how easy sfGuardPlugin made authentication.  The problem is there isn&#8217;t a symfony plugin that allows for AD/LDAP authentication.</p>
<p>My next task is going to be integrating the adLDAP code into a plugin to expand sfGuardPlugin. The point isn&#8217;t to create a seemless authentication scheme, simply to be able to sign in with a domain username and password. I&#8217;m going to need not only authentication but also group membership for permission maintenance. This is either going to be something simple or something complex.  I have done it before and I&#8217;m fairly certain I&#8217;ll be able to do it again.</p>



Share and Enjoy:


	<a rel="nofollow" id="print" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="email" target="_blank" href="javascript:window.location='mailto%3A%3Fsubject%3DAuthenticating%2520to%2520an%2520Active%2520Directory%2520Domain%26amp%3Bbody%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F';" title="E-mail this story to a friend!"><img src="http://phazeon.com/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" id="rss" target="_blank" href="javascript:window.location='http%3A%2F%2Fphazeon.com%2Ffeed%2F';" title="RSS"><img src="http://phazeon.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow" id="digg" target="_blank" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F%26amp%3Btitle%3DAuthenticating%2520to%2520an%2520Active%2520Directory%2520Domain%26amp%3Bbodytext%3DI%2527ve%2520a%2520project%2520that%2520needs%2520to%2520authenticate%2520itself%2520against%2520a%2520Windows%2520Active%2520Directory.%25C2%25A0%2520I%2527ve%2520done%2520this%2520before%2520and%2520it%2527s%2520not%2520exactly%2520the%2520simplest%2520thing%2520to%2520do.%25C2%25A0%2520I%2527ve%2520used%2520adLDAP%2520before%2520and%2520it%2527s%2520worked%2520relatively%2520well%2520in%2520my%2520stand%2520alone%2520projects%2520before%2520I%2520';" title="Digg"><img src="http://phazeon.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" id="del.icio.us" target="_blank" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F%26amp%3Btitle%3DAuthenticating%2520to%2520an%2520Active%2520Directory%2520Domain%26amp%3Bnotes%3DI%2527ve%2520a%2520project%2520that%2520needs%2520to%2520authenticate%2520itself%2520against%2520a%2520Windows%2520Active%2520Directory.%25C2%25A0%2520I%2527ve%2520done%2520this%2520before%2520and%2520it%2527s%2520not%2520exactly%2520the%2520simplest%2520thing%2520to%2520do.%25C2%25A0%2520I%2527ve%2520used%2520adLDAP%2520before%2520and%2520it%2527s%2520worked%2520relatively%2520well%2520in%2520my%2520stand%2520alone%2520projects%2520before%2520I%2520';" title="del.icio.us"><img src="http://phazeon.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" id="google" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F%26amp%3Btitle%3DAuthenticating%2520to%2520an%2520Active%2520Directory%2520Domain%26amp%3Bannotation%3DI%2527ve%2520a%2520project%2520that%2520needs%2520to%2520authenticate%2520itself%2520against%2520a%2520Windows%2520Active%2520Directory.%25C2%25A0%2520I%2527ve%2520done%2520this%2520before%2520and%2520it%2527s%2520not%2520exactly%2520the%2520simplest%2520thing%2520to%2520do.%25C2%25A0%2520I%2527ve%2520used%2520adLDAP%2520before%2520and%2520it%2527s%2520worked%2520relatively%2520well%2520in%2520my%2520stand%2520alone%2520projects%2520before%2520I%2520';" title="Google Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoo! bookmarks" target="_blank" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F%26amp%3Bt%3DAuthenticating%2520to%2520an%2520Active%2520Directory%2520Domain%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DI%2527ve%2520a%2520project%2520that%2520needs%2520to%2520authenticate%2520itself%2520against%2520a%2520Windows%2520Active%2520Directory.%25C2%25A0%2520I%2527ve%2520done%2520this%2520before%2520and%2520it%2527s%2520not%2520exactly%2520the%2520simplest%2520thing%2520to%2520do.%25C2%25A0%2520I%2527ve%2520used%2520adLDAP%2520before%2520and%2520it%2527s%2520worked%2520relatively%2520well%2520in%2520my%2520stand%2520alone%2520projects%2520before%2520I%2520';" title="Yahoo! Bookmarks"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow" id="yahoobuzz" target="_blank" href="javascript:window.location='http%3A%2F%2Fbuzz.yahoo.com%2Fsubmit%2F%3FsubmitUrl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F%26amp%3BsubmitHeadline%3DAuthenticating%2520to%2520an%2520Active%2520Directory%2520Domain%26amp%3BsubmitSummary%3DI%2527ve%2520a%2520project%2520that%2520needs%2520to%2520authenticate%2520itself%2520against%2520a%2520Windows%2520Active%2520Directory.%25C2%25A0%2520I%2527ve%2520done%2520this%2520before%2520and%2520it%2527s%2520not%2520exactly%2520the%2520simplest%2520thing%2520to%2520do.%25C2%25A0%2520I%2527ve%2520used%2520adLDAP%2520before%2520and%2520it%2527s%2520worked%2520relatively%2520well%2520in%2520my%2520stand%2520alone%2520projects%2520before%2520I%2520%26amp%3BsubmitCategory%3Dscience%26amp%3BsubmitAssetType%3Dtext';" title="Yahoo! Buzz"><img src="http://phazeon.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow" id="live" target="_blank" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F%26amp%3Btitle%3DAuthenticating%2520to%2520an%2520Active%2520Directory%2520Domain';" title="Live"><img src="http://phazeon.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow" id="stumbleupon" target="_blank" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F%26amp%3Btitle%3DAuthenticating%2520to%2520an%2520Active%2520Directory%2520Domain';" title="StumbleUpon"><img src="http://phazeon.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" id="technorati" target="_blank" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fphazeon.com%252F2009%252F05%252F30%252Fauthenticating-to-an-active-directory-domain%252F';" title="Technorati"><img src="http://phazeon.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://phazeon.com/2009/05/30/authenticating-to-an-active-directory-domain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
