From: Jason C. <jco...@vi...> - 2004-12-16 18:54:34
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> <title></title> </head> <body bgcolor="#ffffff" text="#000000"> Windows/IIS, ewww! Well I guess it's a valid environment, add it to the feature list and we'll discuss it. I guess it's possible that other people might be using windows for their server.<br> <br> Logging, yes we do need to figure this out. I looked at a log4php package, and it looked fairly complete, with the exception that it didn't seem to have much documentation. I didn't like the log package in pear (it didn't record file/line/class/function information at all), but I'll keep looking, there might be something else.<br> <br> I'll get started on the build and inclusion of propel/phing/creole and set some things up.<br> <br> Jason Corbett<br> <br> Matthew Hildebrand wrote: <blockquote cite="mid...@sc..." type="cite"> <meta http-equiv="Content-Type" content="text/html; "> <meta name="Generator" content="Microsoft Word 11 (filtered medium)"> <!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--> <style> <!-- /* Font Definitions */ @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman"; color:black;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {color:blue; text-decoration:underline;} pre {margin:0in; margin-bottom:.0001pt; font-size:10.0pt; font-family:"Courier New"; color:black;} span.EmailStyle18 {mso-style-type:personal-reply; font-family:Arial; color:navy;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:595946227; mso-list-template-ids:-124605534;} @list l1 {mso-list-id:1911767713; mso-list-template-ids:-891246554;} @list l1:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:1.0in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} ol {margin-bottom:0in;} ul {margin-bottom:0in;} --> </style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1" /> </o:shapelayout></xml><![endif]--> <div class="Section1"> <p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">I think that these are all excellent ideas. The only new thought that I have to add at the moment is a reminder that we need to select some sort of logging facility to use for our portion of the code.<o:p></o:p></span></font></p> <p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">As far as securing php files, I believe (though I may be mistaken) that php include/require statements can point to an absolute file in the file system as opposed to a relative/absolute URL (actually, I believe that it’s the recommended practice, though it’s possible to make the statement reference a URL). With this as the case, I think that we can store said files in /etc/tcdb/ or /usr/etc/tcdb/, secure them so that they only have read/execute access by wheel, and be set. I definitely agree that the only publicly available files should be those that actually generate content the user directly sees. Also, we should consider a statement at the top of each file that restricts the file from being run if it is run directly (I know that I’ve done/seen it before, so I’ll look around for this snipit of code).<o:p></o:p></span></font></p> <p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Also, something that we probably should keep under consideration is allowing for usage under Windows/IIS.<o:p></o:p></span></font></p> <p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">--Matt<o:p></o:p></span></font></p> <p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p> <div> <div class="MsoNormal" style="text-align: center;" align="center"><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt; color: windowtext;"> <hr tabindex="-1" align="center" size="2" width="100%"></span></font></div> <p class="MsoNormal"><b><font color="black" face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma; color: windowtext; font-weight: bold;">From:</span></font></b><font color="black" face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma; color: windowtext;"> <a class="moz-txt-link-abbreviated" href="mailto:tcd...@li...">tcd...@li...</a> [<a class="moz-txt-link-freetext" href="mailto:tcd...@li...">mailto:tcd...@li...</a>] <b><span style="font-weight: bold;">On Behalf Of </span></b>Jason Corbett<br> <b><span style="font-weight: bold;">Sent:</span></b> Wednesday, December 15, 2004 6:15 PM<br> <b><span style="font-weight: bold;">To:</span></b> Jason Corbett<br> <b><span style="font-weight: bold;">Cc:</span></b> <a class="moz-txt-link-abbreviated" href="mailto:tcd...@li...">tcd...@li...</a><br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [tcdb-devel] Organization of tcdb2.php cvs module</span></font><font color="black"><span style="color: windowtext;"><o:p></o:p></span></font></p> </div> <p class="MsoNormal"><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;"><o:p> </o:p></span></font></p> <p class="MsoNormal"><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">Sorry for the big email, but I've thought of some things, and I'm expecting some feedback on this.<br> <br> Alright, I've had some time to think about it, and I'm not sure on the copy 'n run idea. There are a couple of issues:<o:p></o:p></span></font></p> <ol start="1" type="1"> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">We want this to work for Mysql and for Postgres out of the box (I think we should also consider sqlite for demo purposes, but we can start another thread on that). I'm almost positive that the class files that are generated (not the subclass ones we edit, but the parent persistent ones) are different for the different databases. I could be wrong, maybe creole handles this, we may want to investigate it, but at any rate we'll need 2 different builds of the sql file.<br> <br> I think that a better way to handle this is that we should have a build system based on phing, that does the generation/install dynamic. This way we can script it as we need, and we have a much cleaner cvs/distribution.<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">After going through and trying to custimize the propel-gen script so that we could make the directories live in the places we want, I realized that it would be much easier to customize it if we distributed phing/creole/propel in our cvs, and then used our own build process. I could probably get it done in a day. It would make a lot more sense than having to say as part of the install - follow the instructions from propel to install the propel runtime. We should distribute this stuff, it isn't really big, and I don't think any of it is native code.<o:p></o:p></span></font></li> </ol> <p class="MsoNormal"><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">So my proposal is this:<o:p></o:p></span></font></p> <ol start="1" type="1"> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">We have an installer / build system with the following requirements:<o:p></o:p></span></font></li> <ul type="circle"> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">shell based, not to restrictive since this project is meant as an intranet system. Some projects use a web based installer, but I find that the reason they do this is for people deploying it that only have ftp access. Our potential users don't typically fit into this category.<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">It should request the information on what database to use, what username/password, etc. from the user. All information to get it basically set up and running, no editing of properties files/config files. The properties it asks for should be minimal (ie enough to get it up and running with an admin user). All other settings should be customized within the web interface.<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">We should have a uninstall/wipe. Maybe wipe is more accurate. The reason for this is that we want dev people (us) to be able to update from cvs, and to quickly deploy the latest schema. Most of this is already in the sql generation.<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">The ability for non web php files to live outside the web root. I find one of the most annoying things about securing a php application is that you have to edit .htaccess files for all the dirs that have php files that shouldn't be accessed through the web (like a config.php should never be accessable directly).<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">Much easier install on apache2 systems / newer versions of Redhat, SuSE, and debian if possible. We won't garuntee anything, but apache2 installs almost always have the ability for individual applications to create their own .conf entry in a separate file that will be read in upon startup. I don't think this is a necessary feature to begin with, but it is one I would like to have eventually.<o:p></o:p></span></font></li> </ul> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">Directories:<o:p></o:p></span></font></li> <ul type="circle"> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">build: this contains our version of phing/creole/propel necessary for the building/installing of tcdb.<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">docs: self explanatory<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">lib: At first I had this as runtime-lib, but that seems kinda long, so let's just call it lib. It should contain propel runtime (and of course creole) and any other dependent / non changing classes (ie ones not specific to tcdb)<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">backend: all the backend classes, the ones that are generated, and the ones that we write.<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">frontend: UI stuff. All the files that need to be in the web need to be in this dir.<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">tests: What Unit tests for a Tester's project? Yup, these will help me verify that the backend works like I think it does, so the person writing the frontend won't have to find out the hard way that the backend is completely broken. I'm not saying that we'll have complete code coverage, I don't have that much time, but we can at least test things that have been problems for us in the past (regression).<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">schema: this will contain the tcdb schema. I've figured out how to allow for each table to live in it's own xml file for nice viewing/editing.<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">Any others???<o:p></o:p></span></font></li> </ul> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">Files in root:<o:p></o:p></span></font></li> <ul type="circle"> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">README: general description of tcdb, and design goals, something no one will probably read...<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">INSTALL: simple manual on how to get up and running the quickest, example commands for mysql/postgres<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">installer.php: yup, the installer<o:p></o:p></span></font></li> </ul> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">Beautifiers:<o:p></o:p></span></font></li> <ul type="circle"> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">I would like to have php code formatters/beautifiers to keep all our code consistant in it's look and feel. I've found this to be very helpful (I don't have to spend so much time while coding trying to follow some weird style that I'm not used to, the formatter will take care of it). I found one in pear, but I still have to look to see if it's configurable.<o:p></o:p></span></font></li> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">A html/xml beautifier would probably be good, but maybe not necessary. I know I need to run one on the xml I've written for the schema (make sure all the indentation looks consistent), but someone else can make that call.<o:p></o:p></span></font></li> </ul> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">Doc generator for backend:<o:p></o:p></span></font></li> <ul type="circle"> <li class="MsoNormal" style=""><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">javadoc is nice for learning how to use someone else's classes. Since we're trying to separate the backend and frontend appropriately, it might help to have some doc tool to generate nice looking docs from it. Someone please comment on what you think about this. If you want to see an example of a few I found: <a href="http://www.phpdoc.de/">http://www.phpdoc.de/</a> <a href="http://phpdoctor.sourceforge.net/">http://phpdoctor.sourceforge.net/</a> <a href="http://www.phpdoc.org">www.phpdoc.org</a> (the last one, the web site created is ugly, however it says it has different templates, we'll see. It also has output ability of pdf, chm, etc.)<o:p></o:p></span></font></li> </ul> </ol> <p class="MsoNormal"><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;">Please let me know what you think... I want to get moving, but I also want feedback. If you think one of my ideas is overdone, that's perfect!<br> <br> Jason Corbett<br> <br> Jason Corbett wrote: <o:p></o:p></span></font></p> <pre wrap=""><font color="black" face="Courier New" size="2"><span style="font-size: 10pt;">As Matt and I discussed, Sourceforge has been gracious enough to wipe out what we had in cvs. Now we can rebuild it like we want... Umm how did we want to do that?<o:p></o:p></span></font></pre> <pre><font color="black" face="Courier New" size="2"><span style="font-size: 10pt;"> <o:p></o:p></span></font></pre> <pre><font color="black" face="Courier New" size="2"><span style="font-size: 10pt;"> In my experience php programs have one awesome quality, copy and run. I would like to have everything that is needed to run the web interface in 1 folder. I propose distribution, but feel free to come up with your own ideas. That folder should be the root of the php class paths, and should be copyable to the web folder, and wala, installed. Well there might be a few steps in setting up the config/installing db. But you get the idea.<o:p></o:p></span></font></pre> <pre><font color="black" face="Courier New" size="2"><span style="font-size: 10pt;"> <o:p></o:p></span></font></pre> <pre><font color="black" face="Courier New" size="2"><span style="font-size: 10pt;"> Docs should probably live in a folder called docs. I'm sure I'm missing some things, but basically distribution (or whatever you want to call it) should be the main concern as to how it's structured. Any replies?<o:p></o:p></span></font></pre> <pre><font color="black" face="Courier New" size="2"><span style="font-size: 10pt;"> <o:p></o:p></span></font></pre> <pre><font color="black" face="Courier New" size="2"><span style="font-size: 10pt;">Jason Corbett<o:p></o:p></span></font></pre> <p class="MsoNormal"><font color="black" face="Times New Roman" size="3"><span style="font-size: 12pt;"><o:p> </o:p></span></font></p> </div> ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. <a class="moz-txt-link-freetext" href="http://productguide.itmanagersjournal.com/">http://productguide.itmanagersjournal.com/</a> _______________________________________________ Tcdb-devel mailing list <a class="moz-txt-link-abbreviated" href="mailto:Tcd...@li...">Tcd...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/tcdb-devel">https://lists.sourceforge.net/lists/listinfo/tcdb-devel</a> </blockquote> <br> </body> </html> |