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.
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 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 6 years ago.
Improve this question
I want to write an app for facebook. Googling suggest me that the best language and technology will PHP. But the thing is I have never develop anything on PHP.
My Question is which PHP version I should. Which IDE, where to start web development and where to start facebook API
Start with php 5.3. You should either get a book on PHP, or read the online documentation at http://php.net/
If you already know how to program in some language, then PHP's not too hard. You can get documentation for any function using http://php.net/function-name
As far as IDEs go, use whatever you're comfortable with. PHP doesn't care. I personally just use gvim to write my code and view it using apache+firefox.
which PHP version
This is usually dictated by whatever PHP version your host provides - if you're shopping around, or have direct choice, go for the latest version. If you want to build a portable app, you may need to look into supporting multiple versions (4 and 5) although 4 is fairly out-dated at this stage - many apps have dropped support.
Short answer: 5.3
IDE is entirely personal - what do you currently use? I don't personally use one - just a text-editor and a local (XAMPP) server.
I recommend you to start with basics.
Install the XAMPP webserver package on your local machine. Its easy and you don't need to config php, apache etc. Its everything done by default.
http://www.apachefriends.org/de/xampp.html
Then I would try first tutorials to write functions, classes, etc. Handle with variables.
Introduction: http://tut.php-quake.net/en/
Reference: http://php.net/
As an IDE there is just eclipse (for me). But if you never had worked with eclipse, it could be an overflow for you. Too many things yo don't need in the beginning.
http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliosr
It has a good code completion and syntax highlighting.
Afterwards you can begin with Facebook Samples. Best thing: Download, modify, try, again.
http://developers.facebook.com/docs/guides/web
Good Luck!
Which IDE:
I prefer Netbeans; Eclipse is alright too.
Where to start:
http://developers.facebook.com/docs/
You should get a LAMP/WAMP package and set up a server on your machine to play around with PHP first. I personally use the Uniform Server; it's lightweight and requires nearly no set up.
I really want to point, that you can get lots and lots of information about PHP and it's functions on official site - http://php.net/
This is the number one place for me if I cannot get something to work or need to see syntax for some rarely used functions. And yeah, all my PHP knowledge comes from php.net function references and manuals, so... I'll say: consider buying a book only then if php.net gave you nothing, what I doubt.
Oh, yeah, forgot before... I've heard lots of good feedback from beginners after they've read http://devzone.zend.com/article/627 (PHP For the Absolute Beginner) !
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 going to teach PHP (plus HTML, plus MySQL) to a complete beginner. What tools do you recommend for Windows in term of editor, web server and general set up?
I'd suggest XAMPP, which is PHP, MySQL, Apache and Perl packed together with very easy installation and almost no configuration needed.
For development, I suggest using NetBeans as IDE, it has very nice PHP support.
Get a prepackaged distribution. There are quite a few of these around. Personally I use XAMPP but others are fine too. This gives you Apache, PHP and MySQL with an easy-to-use installer.
Other than that you don't really need much. Just an editor of some kind (which could be anything from Notepad to a full-blown IDE) and something to connect to MySQL. Possibly phpMyAdmin but I personally prefer a desktop app for this. DBVisualizer is pretty decent. There are others.
As far as editors go, of course don't use Windows Notepad. :) Notepad++ is a better free alternative. As far as IDE goes, I kinda like phped but it's commercial. Netbeans is OK. Eclipse can be used too.
I'd second the notepad++ requirement. I'd also seriously advise installing xdebug on the webserver as it'll give a full stack trace if something goes wrong. Without this debugging can be really difficult.
I'd also advise developing with notices on (rather than just warnings). It's a bit more work to code but it's caught stupid errors for me countless times and is invaluable.
Wamp server is good, and contains MySQL, which is probably what you want to target if you ever plan on putting anything live on the web as other databases may not be as well supported.
Make sure you have a real, step-by-step, debugger, and teach them how to use it. “var_dump debugging” is okay in a pinch, but not a good habit to get into. As suggested above, Xdebug is a good choice, especially when paired with a nice front-end. The Komodo IDE as well as NetBeans work with Xdebug.
Beginners often are concerned about “optimizing” their code to make it faster. You can show them—using profiling—that optimizing for speed is pointless unless (1) it really is slow and (2) what you’re optimizing really is the bottleneck. You can configure Xdebug so that simply adding ?XDEBUG_PROFILE to the end of a URL generates profiling statistics. You can then analyze those statistics with the beautiful and easy-to-use webgrind.
Choosing an editor or IDE is a personal decision. Let them use whatever they are comfortable with. If they’ve never programmed before, teach them about your favorite editor or IDE.
XAMPP give you an out-of-the-box installation with PHP, MySQL, Perl and Apache, so you can focus on learning HTML and PHP:
http://www.apachefriends.org/en/xampp.html
Apache-based local web-server, and a comfortable IDE.
You may use whatever IDE you like, but it should:
- highlight PHP
- have embedded FTP client (for working with non-local files)
I recommend XAMPPLite with PHP 5.3.0 if possible.
Regarding databases, I suggest SQLite - it's a great database engine embedded in a single file that supports standard SQL and IMHO it's easier to set up and maintain, otherwise MySQL with InnoDB.
Editors, I would go with Notepad++ or Intype for TextMate-like bundles.
If you're looking for IDEs, pick either Komodo or Aptana.
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.
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
I'm a Engineering student and I'm attending a Database and Information Systems class this semester. It's required that I produce a website/application that uses a database, using PHP/PGSQL. My questions are:
which IDE would you recommend?
does anyone have good tips and advices for a new developer?
it would help me (a lot) to develop this project attending some more "academic" aspects of the subject, such as the Entity/Association Model, etc. Are there any good tools to help structure my work?
Thanks!
EDIT: A few notes:
I forgot to ask one last thing, I tried installing BitNami's WAPP Stack. Does anyone know how good and/or reliable it is?
I'm actually working under Windows Vista Business (new laptop :S ). Would you recommend develloping under Linux for any specific reason?
which IDE would you recommend?
Anything that supports remote debugging. You will save yourselves hours and hours and learn so much quicker if you can actually step through your code. It always amazes me that more people don't use good debugging tools for PHP. The tools are there, not using them is crazy. FWIW I've always been a devotee of Activestate Komodo - fantastic product.
does anyone have good tips and advices for a new developer?
get test infected. It will stand you in good stead in the future, and will force you to think about design issues properly. In fact the benefits are many and the drawbacks few.
learn to refactor, and make it part of your development "rhythm".
related to this is: think ahead, but don't programme ahead. Be aware that something you are writing will probably need to be bubbled up the class hierarchy so it is available more generically, but don't actual do the bubbling up till you need it.
it would help me (a lot) to develop this project attending some more "academic" aspects of the subject, such as the Entity/Association Model, etc. Are there any good tools to help structure my work?
Learn about design patterns and apply the lessons you have learned from them. Don't programme the "PHP4" way.
I forgot to ask one last thing, I tried installing BitNami's WAPP Stack. Does anyone know how good and/or reliable it is?
No idea, but if you have the time I'd avoid a prebuilt stack like WAMPP. It's important to understand how the pieces fit together. However, if you're running on Windows, you may not have time and your energy could be better focused on writing good code than working out how to install PHP, PostgreSQL and Apache.
I'm actually working under Windows Vista Business (new laptop :S ). Would you recommend developing under Linux for any specific reason?
Yes I would. Assuming you are deploying on Linux (if you are deploying on Windows I'd be asking myself some serious questions!), then developing in the same environment is incredibly useful. I switched for that reason in 2005 and it was one of the most useful things I did development wise. However if you're a total *nix newbie and are under tight time constraints maybe stick with what you know. If you have time to try things out, you'll find it pretty easy to get up and running with a good modern Linux desktop distro and the development work will fly along.
This is probably the only time in your career when you have the full freedom to chose what tools to use, so make the best use of it. Learn some of the classic tools that will go with you a long long way.
So instead of using an IDE which you'll probably do all your professional life get a taste of using old school editors like vim/emacs. One advantage here is that the IDE will not hide all the details on getting your project to work, knowing the full technology stack is always a plus.
For any technology that you'll be using try and get a good broad perspective before diving in to the implementation details, so for PHP I would suggest getting a grasp of XHTML, CSS and Javascript including libraries like jQuery; Object Relational Mapping (Take a look at Ruby on Rails, CakePHP, Django and SQL Alchemy) and Model View Controller Frameworks on various platforms.
For PGSQL in addition to normalization try to get into the depths of information_schema and the transaction isolation levels and when they're useful.
Also important is understanding how the HTTP protocol works at a low level and how highly scalable websites can be built using HTTP.
Rather than relying on tools I would say that just create a reading list on the topics mentioned above and that would automatically structure your thought process to take into account these kind of issues.
IDE: I reccomend PSPad for its great FTP features and syntax highlighting for PHP
Tip: Go through the PHP documentation for mysql or whatever database you are using, the PHP documentation is the best tool you have for learning it.
Tip: Keep data simple, its always mutable to something else, for example, store time with unixtimestamp, since php has great functionality with the date() function to turn it into anything you want.
EDIT to add linux vs windows tips
I have developed on both Windows and Linux machines and i have both had a PHP server on Linux and Windows and for my type of developing (CMS's and Websites on those CMS's) i prefer developing on Windows and hosting on Linux. This is due to the stability of Linux and the Tools i can use reliably on Windows (Photoshop mainly)
I would recommend a plain text editor rather than an IDE. You should use one with syntax highlighting such as Notepad++.
Tips:
Use Firefox
Play around with some test databases. The biggest mistake made when teaching or learning databases is to focus on theory without actual data.
A good IDE for PHP is PDT, an Eclipse plugin.
My recommendations:
No IDE - just a basic syntax-highlighting text editor (I use jEdit)
Understand XSS and SQL injection
There are lots of good frameworks under PHP that will help
I recommend you netbeans .its free. it is available for all platforms, and mostly it is good for editing php, jsp, java, css, html, ...
Good for SVN, mercurial, Plus you can integrate it easyly with kenai.com...
it helps with the IntelliSense kind of pop up.
believe me, i'm using it for php development and its the best suited ide i can find...
IDE: Quanta+
tip: don't use a template library over a template language (PHP)
tip: MVC is a design and mentality issue, not a library
The best editors you get on windows are Notepad++ and Eclipse. both good, but can't hold a candle to Kate and Quanta+. for that alone, i'd ditch windows. Also, it's nice to have both the development and a real test environment on the same system, and even if most OSS is available on windows, they're always a square peg on a round hole.
ide: vim + (firefox+firebug)
using an ide with php, for the most part, is overkill
other tools: pgadmin3
design your tables so they are easy to query
if you have an extra box, i would put linux on it if you want to try it out. Ubuntu is a good started distro with a simple LAMP set up process. I wouldnt do anything to that vista laptop though, because it will allow you to test in IE and firefox.
Have you looked at Delphi for PHP (<http://www.codegear.com/products/delphi/php>) ?
Joe Stagner of Microsoft really likes Delphi for PHP.
He says it here: "[Delphi for PHP] 2.0 is the REAL DEAL and I LOVE IT !"