Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
Good morning, all.
I've been doing websites now for about seven years (most of which have been in ASP.NET, but some just HTML) and I'm getting ready to make the move to PHP for my next project. Can anyone suggest some resources and/or tutorials that are more than the usual Hello World kind of thing?
Specifically, any guidelines on code re-use like the ASP.NET equivalent of MasterPages, UserControls, etc.
Thanks in advance,
Matt
As a 5 year PHP coder that has yearned for the liberation of a "better" platform such as ASP.NET, I bid thee good luck.
By itself, you have nothing like MasterPages, UserControls, page execution cycles, handlers, etc. PHP is much more like ASP classic in that the script starts at the top and ends at the bottom. Everything in the middle can be anything you like, and if you want the kind of structure that ASP.NET offered you, then you'll have to implement it yourself.
As soon as you figure your way around the basics, get over the massive lack of organization of the standard library, accept that the bolt-on OOP is a bit clunky, learn to accept PHP for the monster that it is, and still at this point actually want to use it for something serious, you should look into a pre-made framework such as Zend or Codeigniter (among others) that try to get most of the plumbing out of your way.
Matt,
Reference:
http://php.net
Environment:
XAMPP
WAMP
Tutorials:
One PHP.net
On w3schools
Web Frameworks:
Symphony
CodeIgniter
CakePHP
Also consider checking out Python and Ruby as alternatives for web development. They are more powerful than PHP since you can utilize them also for desktop apps and maintainance scripts, where is while it is possible to do in PHP, it's highly undesirable.
Ruby
Python
For your "specifically" part, you want to step away from raw PHP and spend some time playing with one of the numerous frameworks that spawned to overcome PHP's lack of RAD features.
http://cakephp.org - http://www.symfony-project.org - http://framework.zend.com
They all have their own slants on templating (all frameworks do) but none (and this extends outside of PHP) follow the same ideas as Microsoft. Server and User controls are fairly unique techniques.
As I said in my comments, they're nowhere near as clean as "proper" web frameworks (django, rails, even webpy etc) but they do work a lot better than just hacking away on your own.
As Oli mentions in the comments, PHP by itself is missing a lot of the structure you may be used to. There are a number of PHP frameworks that help solve this problem.
Symfony (http://www.symfony-project.org/) is somewhat similar to Rails / Django if that's what you're used to.
Zend Framework (http://framework.zend.com/) is a much more open form solution, but better for certain projects.
That said, if you're diving into PHP by itself, the manual on http://www.php.net is fantastic. I downloaded it and keep a link to it in my quicklaunch.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
For a website I need a forum and I'm looking for code written in classic ASP. I know about phpBB and Simple Machines, but that's written in PHP.
I'm used to use (classic) ASP for websites, because I think ASP.NET is to much overkill for simple websites. Or should I definitely switch to PHP? I'm thinking about doing that for some time.
Suggestions?
(So 2 questions)
There is only one that is good, Snitz.
(I would seriously consider moving to .NET though if you want to stay on the MS platform)
I always use Classic ASP, it works beautifully. I tried ASP.net but it was too complex for most website development. ASP.NET keeps changing and require enormous learning curve to keep current. MS switched languages to C# which makes the transition just that much harder.
PHP has an ugly syntax and too many different frameworks which makes it impossible to learn for developer purposes. Good only for intranet applications in my opinion.
Classic ASP is locked down and works perfectly today just as it did years ago. With a few library files, code writing is easy as pie and examples are unlimited on the internet.
Snitz forum is good and so is web wiz forums.
others here
http://www.codango.com/asp/fnc/search/?tree=aspin/software&pg=1&order=desc&qry=forum&cat=all
Stick with Classic ASP if you understand it. It is more rubust, more versatile and will run on any server running IIS. And it can be edited easily and at any time using Notepad or Sharepoint Designer.
I use Classic ASP because I can create much more sophisticated web applications than anyone can using other languages. For forum software it depends on the features that you need. After using or trying most of them I prefer to roll my own.
Classic ASP is getting old and has problems in terms of scalability. I spent over a year converting classic ASP to ASP.NET for a high usage site because we could not get classic ASP to scale.
I know it is hard to change from what you know, but in the world of software - change is a constant. Going to PHP will save allot of problems in the future - it happened with FoxPro where Microsoft just stopped supporting it. So take the step to learn something new.
PHP is open source and still easy to write. It has a wonderful manual online so there is no direct cost in learning. Plus, you can write code directly on the page just like classic ASP, although modern development practices frown upon that.
PHP manual: http://www.php.net/docs.php
Plus you can always ask for help on SO.
Asp.Net is a very powerful language and isn't too different that Asp. It did take a little bit of extra learning, but it was well worth it. was in very much the same boat as you are and can not stand how the WYSIWYG editors reformat all of the HTML. I've spent a very large part of my life using Notepad for all of my programming needs.
I have been using Visual Studio 2008 for my Asp.Net sites since it came out. I do not use the WYSIWYG mode, but rather always view the Source. This allows me to utilize the color coding of the code, provides access to IntelliSense and enables easy formatting. You can quickly comment or uncomment large sections of code, indent large sections instantaniously and pull up help files with the touch of a button. Using the Source Mode only, I have been able to maintain a very clean and usable set of Html, with all of the benefits of the WYSIWYG editors.
Using VS2008 or VS2010, it is not necessary to have any project files or DLLs that you manage, unless you are creating custom DLLs. Your custom controls can be written and accessed through Notepad, without the need to recompile. Personally, I usually open the Website via FTP Server and manage it from there. This does not require FrontPage extensions, but also does not require the separate development Server for using and editing offline.
The Config files are a necessary part of IIS and can be very beneficial. Fortunately, the Web.Config file is used primarily to store the configuration for your specific information such as your Database Providers, Membership Providers and security restrictions. A majority of the Config file is stored in Machine.Config and allows you to minimize the amount of information in it.
As I said, I have spent many years using Notepad and FTP to edit and manage websites. A large problem was always ensuring that the files are continually synchronized and you don't accidentally overwrite the newer files with older ones. Using VS in FTP mode takes care of this for you. Your local files are time stamped and if there is a conflict, VS will ask which edition should be used. Check it out. I think you'll find VS very beneficial.
Asp.Net is also used for the Ajax Control Toolkit, which is essentially an add-on of controls for web development. You can get more information on them at www.asp.net/ajax. They are very powerful and open source. For the bulk of us, you can use the pre-compiled Dll, which is a single file, and upload that to your Bin Folder. Short of that, all you need to do is properly reference the resource in your page and they are usable. It's a very simple process, but can save hours of writing JavaScript and client-scripted controls.
I hope this helps you out.
Scott
I've used WebWizGuide.com in the past, by far the best, still actively supported, free to use (or a paid version is offered.)
The guy Bruce who runs it is extremely dedicated and passionate, and the code behind it is some of the highest quality I have ever seen, and that software which I used to write plugins for is how I got into coding in the first place!
I would definatly recommend this to you.
I recommend you to jump to ASP.net, especially ASP.net MVC (IMO a bright spot in the MS portfolio), but if you want to start with something more simple, more similar to ASP Classic, you can jump to Microsoft WebMatrix
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
We do not get many projects in Ruby. We are focused only on PHP so far. As a web development agency, are we missing an important channel of revenue due to our unopened nature with Ruby and Ruby on Rails?
If we start doing some local projects in Ruby, is it possible to open another revenue channel? Is it wise to ask PHP developers to learn Ruby too?
With our expertise in search, we can promote Ruby and reach people who do Ruby projects, but are they a big crowd?
I would say it depends entirely on your customer base. If you are building website for companies that like to dictate the technology stack, then yeah, you could probably open up another revenue channel by offering ruby development.
However, I believe that most of the time customers don't care too much about what technology you use - they just want the job done on time and under budget. In these cases offering Ruby probably won't do much for you other than widen your horizons/options (which I believe is a good thing, but not necessarily tied to revenue).
At this point, I think that Ruby on Rails is bigger with people that are building things themselves than it is with people that are paying other people to build things. That may change over time.
Do you feel like you are being hired now because of your PHP skills or on your general reputation as a web dev agency? Most customers probably do not care.
Use what makes you most productive. In your shoes, I would certainly be giving RoR a good look as I like it better myself. If you find that RoR makes your job easier then use it. If not, maybe do not bother. There are many Rails inspired MVC frameworks for PHP though which you could look at as well.
There is certainly more buzz around Ruby on Rails these days so it may make you look more plugged in sometimes.
I do not see a problem with expecting devs to learn it. Your better devs would probably love the opportunity. With the world going Agile though, it probably makes sense to let the devs choose the technology unless there is a market-driven reason to change.
Ruby on Rails and PHP are both capable of doing the same kind of things. Some people just find it easier or more pleasant with RoR. Unless you find you're losing gigs specifically because you want Rails, I wouldn't worry about it as a "channel of revenue" — it seems unlikely to me, since most non-developers don't have any idea what "the PHP" is anyway.
It is probably worth checking out just to see what your options are. You might find it works out well for you. But the benefits will generally be on the development side of things.
Focus is good and diversity is good. It is sort of a "how long is a piece of string".
PHP is a strong maturing language, widely used, supported, and easy to learn. Ruby on the other hand is quite different, it involves a lot more command line calls.
Ruby is highly praised and there is quite a good solution. It is a lot quicker to make applications.
CodeIgniter / Zend are PHP frameworks which might be worth looking at.
Can you afford to train people in a new language?
Dale
cakePHP might be a good fit for your team.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
This is part observation, part question.
First the observation:
While everyone talks of modular programming, OOP, procedural done right, aspect oriented, design patterns, etc., several popular opensource PHP apps are plain script files with the structure being controlled by includes and requires.
This looked stupid to me till I faced a recent issue with my shared web host - they don't support MySQL stored procedures on shared hosting. I checked out many competing shared hosting packages - same story.
Then I rewrote the code using SQL queries and some static functions in DB-handling class.
That was when I realised that the said PHP projects actually take into account the whole spectrum of web hosting packages and so decide to keep the code as dumb as possible, so as to reach a wider user base.
The other thing is the reach of the script to newbies without a formal Software Engg background: Scripts are easier to hack for newbies.
Those two were the good reasons I saw to explain the phenomenon.
Make no mistake, the guys maintaining these projects are pretty good at software development, so it is not incompetence.
Sometimes they have spare cash too.
Now the question: What other sensible reasons can you think of?
EDIT: I personally feel that it's not about OOP alone, as pointed out by others, good code structure is not dependent on OOP/Procedural style. I've seen and coded a few functions-based PHP projects myself.
The thing that bothers me most is that the folder/filesystem layout is good, the file/folder naming is great, documentation is plenty, standards are followed, but, when you open the file to read the code, there's a hundred if-then-else conditions, version-checking, odd use of output buffering here and there, cookie manipulation code, some constants, includes, and no clear structure in many files.
At least I seem to be lost every time I try reading the code. But if I read code from Java or C# code bases, or even some other sidelined PHP apps - there is proper separation of code inside functions, templating is used for display and so on. Looks organised. Looks easily understandable.
Backward compatibility could be the issue for maintainers, but they would be open to making the next version in a more structured way. But that too does not happen!
Obviously, I'm missing something because those maintainers always work hard, after all.
Provider compatibility is an issue in many areas when building applications with PHP, it's not the reason why OOP is not used in certain projects.
Several Object Oriented Programming characteristics like interfaces, the public/private/protected keywords and more can be only found in PHP 5. Some applications still support PHP 4, mainly for the reason that there are still providers out there who won't upgrade (out of the justified fear that their clients' PHP 4 apps will crash by the dozen). Therefore, there is still a lot of "primitive" PHP 4 OOP code around. But there is no living PHP version that does not support at least basic OOP.
include and require are used to import code snippets into the current script. You will find them in object oriented applications as well.
There are several software products that make almost no use of OOP at all, and that's fine as long as the overall code quality is in order. While it is regarded by many (myself included) as a important method to write better, more reusable software, OOP is no requirement to write good software.
i see 3 main reasons:
compatibility: PHP did not include OOP from start on. to be down-compatible with older PHP environments and to reach a wider audience, you're keeping the status quo.
effort-switch: switching/refactoring a codebase fron non-OOP to OOP is a lot(!!) of work, transformation script in my view aren't a solution, because they tend to generate code for machines and not for humans. this is OK from runtime aspect but horrible for maintenance.
team-culture: i talked to some PHP developers, some just don't want to make the switch, because they say everything is good and working...
One of the biggest barriers to going all OOP with PHP is that everything has to be reloaded, initialized and executed on every page hit. If you designed a PHP system that was truly object oriented, across the board, performance would probably be abysmal. There would just be a lot of files and objects to load and configure to get things going. Everything has to be loaded and ready to go within a second (ideally much less).
Compare that to say a Java based system where it doesn't really matter if it takes 10 minutes to get the system started. Once it's started, everything is loaded and ready to go.
WordPress is probably a good example of how slow things can get when creating a modular system with lots of files. Much less a modular OOP system. Load testing a straight WordPress install will get you about 10-15 pages/sec with a simple "Hello World" page. Compare that to being able to get well over a hundred pages/sec with a straight "Hello World" php script.
You can work around these issues with caching, which WordPress, Symfony and other systems do.
Unless you use an MVC framework with PHP, Such object oriented approach (like ASP .NET has) would take too much time of yours. Actually you will need to design your own framework first.
I cannot say using a true object oriented approach in php is not possible. You can take objects whereever you want and serialize to strore them in session etc...
When it comes to MVC frameworks in PHP, you can see a true object oriented approach.
Check here for Zend Framework example
Zend Framework is not the only one.
But the words "object oriented" are new for PHP. Only PHP5 is considered as having true OOP. So you have to wait 1-2 years more for having good scripts with true object oriented approach.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm beginning PHP development, and I'm looking at picking brains for ideas and best practices, and also website resrouces, such as www.w3schools.com
Yes, it has to be PHP as that's the existing website technology that's being used.
I'm using Windows, although I'll be doing development on a Virtual Machine, maybe Virtual PC or Virtual Box running Windows 2000 or XP, or maybe Vista.
I'm an experienced VB6 and SQL Server developer, so I can use SQL Server as the back-end running on my host laptop, or I can use mySQL maybe. I'm thinking using SQL Server to start with would remove one layer of complexity, and allow me to concentrate on the webserver (Apache, maybe ?) and PHP and not have to worry too much about the database, as all that will be completely natural to me.
Framework recommendations, and one or two examples of what you have used them for will be appreciated.
Source and version control frameworks, tools, utilities and add-ins would also be appreciated.
I'm going to consider writing an answer to this question myself with my experiences as I get started, almost like a 'how-to' step-by-step guide so that anyone in the future who wants to do the same thing can get going even quicker.
Thanks in advance, gurus.
Ignore frameworks to begin with. Once you have an idea about what php is/can, you can pick a framework. But don't do it as the first thing.
As for setup, I would strongly recommend that you use a standard stack. That means Apache and MySql. You can run it on Windows for development mode. The differences between Windows and *nix are rather small for most PHP applications.
For revision control you should probably use SVN, as it is the de-facto standard at the moment, and is fairly easy to use. You can download TortoiseSVN for Windows, if you don't like to use the command line.
Use PDO for database connectivity, rather than the older mysql_* functions. It's the new standard in php5. Make sure that magic-quotes are disabled, and use prepared statements/bound parameters for binding data to queries.
First thing I suggest you do is read How Is PHP Done the Right Way?
For source control, Subversion is a decent place to start.
You will need Firefox plus Firebug. Also look at What’s in your web-developer toolbox? and Free tools to speed up web development.
In regards to frameworks, start with Choosing the right PHP framework.
You probably should consider Javascript frameworks too, in which case start with JavaScript frameworks and CSS frameworks: JQuery, YUI, neither, or something else? and Which Javascript framework (jQuery vs Dojo vs … )?
I've used PHP extensively on the WISP (Windows, IIS, SQLServer, PHP) stack. It's a little unusual as the vast majority of PHP use is on LAMP, but personally I've found it to be rock solid.
If an MVC framework is not absolutely essential for you I would highly recommend the Tiny But Strong template system. I've used Smarty and various other PHP templating systems, but TBS wins hands down for me as it's very tight, clean and above all works with WYSIWYG page design programs such as Dreamweaver.
A huge plus is that PHP itself is very well documented. It's once you start using other people's code that things begin to get hairy.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I am looking for RAD like environment for PHP and/or Python free or not does not matter.
It should have a visual environment where one can use a point and click interface so that it is possible to select objects with mouse and move them around.
I have looked at Delphi4PHP. The RAD part is fantastic, but I don't like the framework on which it is based VCL4PHP (vcl4php.sourceforge.net) is crappy. Just to deploy a simple Hello world application we will have to deploy 40MB of that framework. That is just stupid.....
I looked at Eclipse but it is only a code IDE. Does not have a visual way of designing a page/window. Did I miss any plugin that supports this feature?
I was suggested to give NetBeans IDE a close look so I also looked that up, but did not find what I wanted.
I have also looked up following but none of these are true RAD:
NuSphere PHPEd
VS PHP for Visual Studio
PHP Designer (not a designer by any means just a plain old IDE)
I have not been able to find any descent Python RAD tool also.
I have looked up Yes Software's Code Charge Studio (www.yessoftware.com) but it cannot be used to develop complicated applications like say for example an Accounting System or an Inventory Management App, etc.. It is useful but for very simple apps. Making changes to Visual part (referred as components by this people) is a nightmare. Finally it does not support Python.
Python and PHP both have a binding for GTK :
PyGTK for Python;
PHP GTK for PHP;
You can use Glade as a RADD to draw a GTK app.
GTK runs on Windows, Linux and Mac OS.
If you are looking for something embedding everything, I can think of SPE for Python, but you really can run Glade as stand alone.
Since any picture is worth 1000 words :
I let the PHP lovers choosing their language equivalent.
I just remenbered some more tools that might be useful to you, besides WebDev:
PHPMaker
WaveMaker
For Python I'm gonna try the DialogBlocks later this evening.
for python try BoaConstructor if you come delphi background its a good start.
TurboPHP, and it's now open source project.
Also wxPython has GUI Builder.
Delphi4PHP is the only I know of, back in the old days I also used Macromedia (now Adobe) Dreamweaver to generate some code, and if you set up a live site it kinda acts like a RAD IDE. Kinda.
For Python, I asked a similar question a couple of hours ago, I'm also interested in knowing such tool.
There also webdev. It can generate PHP.
Wingware looks like a pretty decent Python IDE
I think Morfik is a RAD tool pretty much like what you're looking for. The language you program in is not PHP or Python, though. It uses ObjectPascal, c#, or Basic:
http://www.morfik.com
I don't think Yogi is a PITA. He is discerning and this is very helpful. Since none of these tools quite hit the mark for him when one does it will be the right one and then all of us will benefit from his studied decision.
You should really check out Vs.php Vs.php it is visual studio (standalone) or a visual studio plugin. Now if someone would do the same for xcode...
Let me elaborate on CodeCharge Studio. I think you still can consider this system.
Personally, I've been using it to develop very complex high-load data-base driven CRM applications, with 4.x version it even generates AJAX-based code and autocomplete, ajax-form submittion are piece of cake.
With CCS you will need sometimes some tuning, but the tricks are pretty much typical. So, CodeCharge Studio is still a choice for complex applications too.
Since you mentioned Delphi, you can try ExtPascal - http://code.google.com/p/extpascal/ . There is a 3rd party designer support for this framework(Delphi and Lazarus).
I found an IDE which will allow user to visually build Python based apps. The IDE is open souce and is from Japan.
Check it out!
link text
And
link text
I have to say that I have not used it. I just discovered it!
I am still searching for a good IDE for PHP which will allow me to build GUI visually.
Hope this helps others.
The good news is that you won't miss it as soon as you familiarize yourself with a way of work when the responsibilities are shared.
Think it over: really the programmer is the right person to assemble the user interface? I think not even in case of a desktop application.
Programmer should write good code, separated display logic, and let all the presentation things to
information architects
user interface/experience specialists
here comes you, to write the code
graphic designers
sitebuilders
The -not so bad- news is that, there is no such tool for PHP and Python.