473,554 Members | 3,075 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Professional Applications Devolpment

Hi,

First of all:
i spend a lot of time on thinking and researching about how to
make developing webapplications with php a more structured/systematic
thing. I even fancied to switch over to jsp since i heard all those
stiltedness rumors about it's professionalism/stability etc.

Anyway my current attitude is that fullfilling the following needs
would make application depvelopment via PHP a really
fast/professional/structured thing:

- An MVC -architecture framework (e.g MOJAVI)
- template parser (for View part)
- severall helper toolkits/frameworks
(DB abstraction layer/Form validation etc.)
- disciplined/skilled Devloper ;)

These are of course not really new findings and
as we all know there are a lot of different implementions/combinations
of the above named out on the web.

So what i want to know is:
- what is your prefered software/framework to fullfill the above
needs.?
- For what purposal do you use them ?
- what are the advantages/disadvantages ?

Wouldn't it be nice to have something like the
"PHP professional webapplication development guidline" ?
containing:
- toolkits/frameworks
- techniques
- tutorials etc.

I think this is really worth thinking and talking about.

Cheers,
NIkolas

Oct 12 '05 #1
65 5361
I am going to be very interested in this thread!

I have been trying to develop a good application framework for a new
web application: a sourceforge project called OSCommerce-XSL which is
intended to be a professional version of osCommerce. The goal is to
use PHP to query an SQL database. The PHP produces XML for XSL to
transform into XHTML. This transformation occurs server side. Optional
Javascript validation of form inputs. Mandatory PHP validation of form
inputs.

So far I have divided the application into the following tiers
View: XSL layer to produce XHTML from XML
Controller: PHP takes URI requests. Validates form input. Produces the
outgoing XML and passes it to the View layer once at the very end.
Model-business layer: a purely PHP layer. No XML related function. No
SQL or PEAR.
Model-data layer: This layer exists to separate the SQL from the rest
of the application

About DB abstraction. With all the SQL dialects this really possible
when queries get complicated? I use PEAR DB but if someone wanted to
change from MySQL they might have to edit many of my SQL statements for
the new dialect.

Form Validation. Which tool kits are available and good? Currently I am
using a PHP class pattern I designed for each form that can validate
input and produce output. I am reasonably happy with what I have
designed but I'm sure it could be better.

Templating. I've tried Smarty but the XML/XSL combination seems much
more powerful. With XML/XSL I like that the application flow is through
the PHP control layer with only conversion using the View layer at the
very end when serving the page to the client. With Smarty the
application flows through the various template files and calls the PHP
as needed.

I haven't seen the MOJAVI project before and will spend some time on
their website.

If you are looking for a sample application to discuss I would gladly
volunteer mine since I am at the right stage of development to do this
kind of discussion.

Peter

Oct 12 '05 #2
Hi Peter
Controller: PHP takes URI requests. Validates form input. Produces the
outgoing XML and passes it to the View layer once at the very end. Is your controller approach capable of managing things like "actions
chains" etc?

Could you provide brief information on the excakt logic flow of your
approach?
Something like a diagram would be nice ;)
With all the SQL dialects this really possible when queries get complicated? I agree ....100% abstraction would affect flexibility...s o the way is
to find a
compromise between abstraction/flexibility...s ame to the form thing.
Templating I've tried Smarty

Me too ...but i don't like it for serveral reasons..

Just to clarify things i do not indend to point out "THE ULTIMATIVE"
frameworkt/templateparser - whatever combination.
But if it exists i would be glad to hear about it ;)

The goal is to give an overview what combinations are passable and what
are their
main/optimal purposals.

e.g.:
use mojavi + smarty...becaus e...
if you got much DB stuff i did good experience on
STUDS + PEAR:DB because....but beware because it lacks of ....

If we could carry together a few scenarios that would be a great
guideline
for those who are looking for an entry to a more professional way of
php development.

Regards,
Nikolas

Oct 12 '05 #3
pe**********@ya hoo.com wrote:
I am going to be very interested in this thread!

I have been trying to develop a good application framework for a new
web application: a sourceforge project called OSCommerce-XSL which is
intended to be a professional version of osCommerce. The goal is to
use PHP to query an SQL database. The PHP produces XML for XSL to
transform into XHTML. This transformation occurs server side. Optional
Javascript validation of form inputs. Mandatory PHP validation of form
inputs.

Having recently started the planning stage of a project very similar to
yours, I am also quite interested in this subject. More in the
consolidation aspect of it than in the 'guideline' aspect.
So far I have divided the application into the following tiers
View: XSL layer to produce XHTML from XML
Controller: PHP takes URI requests. Validates form input. Produces the
outgoing XML and passes it to the View layer once at the very end.
Model-business layer: a purely PHP layer. No XML related function. No
SQL or PEAR.
Model-data layer: This layer exists to separate the SQL from the rest
of the application

About DB abstraction. With all the SQL dialects this really possible
when queries get complicated? I use PEAR DB but if someone wanted to
change from MySQL they might have to edit many of my SQL statements for
the new dialect.

IMO, the database abstraction _code_ should be handled in a fashion
similar to i18n, meaning that just as you would present text to a client
depending on the currently defined language context, the text(code)
presented to the DB should depend on the selected database context.
Form Validation. Which tool kits are available and good? Currently I am
using a PHP class pattern I designed for each form that can validate
input and produce output. I am reasonably happy with what I have
designed but I'm sure it could be better.
What exactly do you mean by a 'PHP class pattern'? Are you using one
'class' to handle all of your forms, or applying a pattern to each of
your forms.
Templating. I've tried Smarty but the XML/XSL combination seems much
more powerful. With XML/XSL I like that the application flow is through
the PHP control layer with only conversion using the View layer at the
very end when serving the page to the client. With Smarty the
application flows through the various template files and calls the PHP
as needed.
Agreed!

I haven't seen the MOJAVI project before and will spend some time on
their website.

If you are looking for a sample application to discuss I would gladly
volunteer mine since I am at the right stage of development to do this
kind of discussion.

Peter

Oct 12 '05 #4
NC
Nikolas Hagelstein wrote:

i spend a lot of time on thinking and researching about how to
make developing webapplications with php a more structured/systematic
thing.
Why stop at development? Or, rather, why start in development?
Structure and system should be first introduced in sales and
implementation. ..
Anyway my current attitude is that fullfilling the following
needs would make application depvelopment via PHP a really
fast/professional/structured thing:

- An MVC -architecture framework (e.g MOJAVI)
- template parser (for View part)
- severall helper toolkits/frameworks
(DB abstraction layer/Form validation etc.)
- disciplined/skilled Devloper ;)
I respectfully disgree. No matter how professional your
development is, your success will NOT be determined by the
quality of development. Whether or not your product uses MVC
(or another fashionable development technique) is of no
consequence to the buyer. The buyer wants to see the relevant
feature set (which is a design issue, ultimately rooted in
marketing), reasonable cost of ownership (which a purely
marketing issue), knowledgeable sales people and responsive
implementation people (which are human resources issues).

On the development side, what you really need is a combination
of coding AND DOCUMENTING guidelines with a code repository and
a defect tracking system. Over time, this will ensure you have
a large base of potentially reusable and reasonably bug-free code.
Whether you want to introduce guidelines that require the use of
MVC or, say, forbid the use of OOP altogether, is a matter of
secondary importance...
Wouldn't it be nice to have something like the
"PHP professional webapplication development guidline" ?
containing:
- toolkits/frameworks
- techniques
- tutorials etc.


I think it's called PEAR; it includes code repository (complete
with dependency checks and defect tracking) and coding guidelines...

Cheers,
NC

Oct 12 '05 #5
NC wrote:
Nikolas Hagelstein wrote:
i spend a lot of time on thinking and researching about how to
make developing webapplications with php a more structured/systematic
thing.

Why stop at development? Or, rather, why start in development?
Structure and system should be first introduced in sales and
implementation. ..


In not really sure that I understand what you are trying to argue here,
but I would argue that 'Sales' is not necessarily a factor that needs to
be considered in the context of this discussion, and implementation is
only one part of the development process. Structure and system _should_
be 'introduced' (at the minimum) well before implementation .
Anyway my current attitude is that fullfilling the following
needs would make application depvelopment via PHP a really
fast/professional/structured thing:

- An MVC -architecture framework (e.g MOJAVI)
- template parser (for View part)
- severall helper toolkits/frameworks
(DB abstraction layer/Form validation etc.)
- disciplined/skilled Devloper ;)

I respectfully disgree. No matter how professional your
development is, your success will NOT be determined by the
quality of development. Whether or not your product uses MVC
(or another fashionable development technique) is of no
consequence to the buyer. The buyer wants to see the relevant
feature set (which is a design issue, ultimately rooted in
marketing), reasonable cost of ownership (which a purely
marketing issue), knowledgeable sales people and responsive
implementation people (which are human resources issues).


Again, you lost me. My first response here would be to see my comment
above on 'Sales' and apply it to every mention of 'buyer' in this
paragraph.
Although you may /sometimes/ be correct in that 'success will NOT be
determined by the quality of development', you definition of success and
mine clearly differ. Proper design markedly increases _your_ ability to
work with, repair, modify and reuse code in the future, and these
abilities are propagated to the user, or 'buyer' in your terms. If the
end user happens to be a developer, or would like to have the software
modified, these attributes are invaluable, and often overlooked and
underestimated in marketing. I would say having these options makes a
project/product more successful.

Regarding your comment that there exists a design issue is "ultimately
rooted in marketing" has me perplexed. The issue with design is
implementing the feature set determined by marketing, and how this
implementation is done should be under the complete control of the
designers (i.e. NOT MARKETING!).

On the development side, what you really need is a combination
of coding AND DOCUMENTING guidelines with a code repository and
a defect tracking system. Over time, this will ensure you have
a large base of potentially reusable and reasonably bug-free code.
Whether you want to introduce guidelines that require the use of
MVC or, say, forbid the use of OOP altogether, is a matter of
secondary importance...

Wouldn't it be nice to have something like the
"PHP professional webapplication development guidline" ?
containing:
- toolkits/frameworks
- techniques
- tutorials etc.

I think it's called PEAR; it includes code repository (complete
with dependency checks and defect tracking) and coding guidelines...


PEAR is indeed one possible answer to the OP's question, though I think
it is far from a complete solution. On an even more abstract level, we
could also say that the solution is PHP itself, or how about 'some
program written in some language that solves the problem'.
Cheers,
NC


Cheers,
Carl.
Oct 12 '05 #6
Nikolas,

First, I'm not a professional web app developer. I'm relatively new to
php. But I am very interested in your proposed discussion.

Since database abstraction still seems to be a problem perhaps a good
solution is to use PEAR DB and then isolate all of the SQL so that it
is easy to work on. The phrasebook design pattern does this and seems
very elegant. Unfortunately I can't get the phrasebook example to work

https://sourceforge.net/projects/phpphrasebook/
If we could carry together a few scenarios that would be a great guideline for those who are looking for an entry to a more professional way of php development.
I thought a comparison like this must exist. Idealists arguing about
the pros and cons of various architectures. I searched for a book on
php application architecture but found nothing other than isolated
application examples. I got excited when I found the magazine
php|Architect but I didn't see any articles covering the entire
application architecture.
Could you provide brief information on the excakt logic flow of your

approach? Something like a diagram would be nice ;)

Maybe the best thing for us to do would be to have a small sample
application that we could study and play with and set up different
ways. Maybe I could strip out a bunch of things from my application as
an example and then draw a diagram.

Peter

Oct 12 '05 #7
Carl,
Having recently started the planning stage of a project very similar to
yours, I am also quite interested in this subject. More in the
consolidation aspect of it than in the 'guideline' aspect.
How similar? If it is eCommerce then perhaps we could work together?
What do you mean by consolidation vs. guideline?

IMO, the database abstraction _code_ should be handled in a fashion
similar to i18n, meaning that just as you would present text to a client
depending on the currently defined language context, the text(code)
presented to the DB should depend on the selected database context.
Say what? What is i18n?
What exactly do you mean by a 'PHP class pattern'? Are you using one
'class' to handle all of your forms, or applying a pattern to each of
your forms.


I am applying a pattern to each form. I think it is neat, tidy and
flexible. It is easy to develop seperately the parts of a new form from
a blank form template. The form handling is about the only part of my
application that I am really happy with. Perhaps if we decide to have a
sample application I can explain more after strip the bells and
whistles from my code.

-Peter

Oct 12 '05 #8
NC,

I'm not sure if you are thinking along the same lines as Nikolas'
proposal. He is talking about the overall application architecture.
Isn't PEAR only a set of components that can be connected by inserting
them into an application archeticture?

I'm not sure why you disagree with Nikolas' proposal. As you say, the
buyer only cares about the feature set, cost and responsive
implementation. The last two are products of the architecture. I think
Nikolas' proposal is very valid because after the sales pitch is
successful the developers have to sit down and type something. What
they type is determined by the architecture upon which they have
agreed. This discussion is about agreeing on the architechture.

-Peter

Oct 12 '05 #9
pe**********@ya hoo.com wrote:
Carl,

Having recently started the planning stage of a project very similar to
yours, I am also quite interested in this subject. More in the
consolidati on aspect of it than in the 'guideline' aspect.

How similar? If it is eCommerce then perhaps we could work together?
What do you mean by consolidation vs. guideline?


Actually, the final goal of my project is in fact an eCommerce
application. Ideally the minimalist 'framework' will be used to create
complete systems, including but not limited to eCommerce. I am still in
the pre-development planning stage, so I don't have any organized
examples to post at this time. The end result should facilitate creating
websites with management for modules that will provide the actual
functionality of the site.
IMO, the database abstraction _code_ should be handled in a fashion
similar to i18n, meaning that just as you would present text to a client
depending on the currently defined language context, the text(code)
presented to the DB should depend on the selected database context.

Say what? What is i18n?


i18n (internationali zation) is used to be able to provide formats based
on the location of the end user. Language translations, number
formating, etc. My suggestion was that similar methods should be used,
seeing that different databases speak different languages. The breadth
of i18n is clearly not required though, and usually a Dictionary or
Translator class will suffice, simply returning the correct words based
on the current database context.

,Carl.
What exactly do you mean by a 'PHP class pattern'? Are you using one
'class' to handle all of your forms, or applying a pattern to each of
your forms.

I am applying a pattern to each form. I think it is neat, tidy and
flexible. It is easy to develop seperately the parts of a new form from
a blank form template. The form handling is about the only part of my
application that I am really happy with. Perhaps if we decide to have a
sample application I can explain more after strip the bells and
whistles from my code.

-Peter


Oct 12 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
2827
by: Paul S | last post by:
I have a copy of MS Visual Studio 2002 Professional ACADEMIC which I understand is the same as the regular Professional version with the addition of a student CDROM. The installation program on the first CDROM only copies the MSDE to the harddrive and the copied setup file has to then be manually executed to complete the installation. Are...
3
14989
by: Tom | last post by:
Is the main difference between the Visual Studio .NET Professional and Enterprise editions the inclusion (in Enterprise) of : 1. SourceSafe, 2. Visio (Architect), and (3) Win2003 Server integration? Also, if Professional doesn't include SourceSafe, but you ALREADY have SourceSafe, can you still use it within the Professional IDE? My guess is...
2
1765
by: George C | last post by:
Hi, What's the difference between C# 2002 Standard and Professional versions? I am currently using C#.net 2002 Standard Edition and would like to know how to create deployment / installation packages of my applications but can't find any information on using my current installation to do this. Can 2002 Standard even create deployment /...
2
2242
by: Kevin R | last post by:
I'm trying to get asp.net 1.1 running on my home PC. When I try creating a new ASP.NET Web Application in 'Visual Studio .NET 2003' I get the following error: "Visual Studio .NET has detected that the specified Web server is not running ASP.NET version 1.1. You will be unable to run ASP.NET Web applications or services" Thanks for any...
2
2772
by: Brian Cryer | last post by:
Appologies if someone thinks this is slightly off topic, but I think viewers of this newsgroups are best placed to answer my question - which is what are the main differences between VB.Net Professional and VB.Net Standard Edition. (Yes I have read the page on the microsoft site about VB.Net Standard and the differences with Professional but...
4
1830
by: Learner | last post by:
we can download the Management Studio Express for free from MS website. I did the same thing on my personal laptop. But can we develop applications using free downloaded Management Studio and deploy later on with the free stuff at work? Or else may i want to get it off Sql server 2005 that we got when we bought the software.
0
1330
by: kellyonlyone | last post by:
E-XD++ MFC Library Professional Edition V9.20 is released (100% Source Code)! -------------------------------------------------------------------------------- February 18, 2006 For more information (press only) please contact: Paul Chi
2
1649
by: pe3no | last post by:
Hi, I'm going to create applications PHP + AJAX + Linux + Apache + Postgres. - Other Open Source technologies / Frameworks, etc. also :) Is this book http://www.amazon.com/gp/reader/0471777781 suitable for my "case"? I'm asking persons who read this book :) I wouldn't like to buy something unuseless, which for example is completely...
10
1899
by: The Count | last post by:
I studied C++ programming in BSc3.Now I want to know more about C++ programming in industry.What types of problems are solved using C++ in industry?What qualities should I have in order to become a successful C ++ developer? How good do I have to be in order to run my own software development company and what other requirements are necessary?
0
7584
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7512
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language...
0
7783
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
8022
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
1
7546
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
5143
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
1
2007
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1117
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
827
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.