Development

HowToAskQuestions

You must first sign up to be able to contribute.

Version 10 (modified by spascoe, 11 years ago)
made a couple of wording clarifications

Introduction

From helping out a number of symfony beginners in the forum, it seems that some of the same questions crop up time and again, and that the way in which questions are asked can sometimes be improved upon, so that more experienced members don't have to ask for further information. This page is a work in progress. Feel free to add stubs, or full material to this, at will. A relevant discussion in the fora is here.

How to ask for help

Do a search on the problem first

A good place to start are the symfony fora, especially if you feel the problem is due more to symfony than, say, Apache or PHP. Type one or two keywords in the search box, and see what that brings up. If your problem is directly related to an existing post, then if necessary, add a further question to that thread, rather than starting a new one. Bear in mind that the search engine isn't great, so try two or three searches before assuming that your topic has not already been covered.

Some questions have more to do with external things, such as PEAR, PHP, your webserver, or your environment. Sometimes these issues are discussed on the fora (eg what bugs a particular version of PHP might have), but don't be afraid to reach for your favourite search engine.

You will find that people are much more likely to help you if you demonstrate you have searched for the solution already.

Try it first

If you find a solution to your problem, either in the fora or elsewhere, try it! If you are having installation problems, consult the various tutorials in the wiki, or in the first project. If you are having a particular difficulty, and it has been covered before, follow the suggestions or examples you find, and see if you can get it to work yourself. Not only is this a good way to learn, but again, people will be more likely to offer assistance if you have given it a good shot first.

Keep questions concise, clear, and in the right place

Sometimes, users post entire database schema.xml files, or the full output of the debug toolbar, or a substantial illustration of a particular several-table join, when it is unnecessary. Most experienced users want to scan a question and understand what is required almost immediately, and a overly-long question will just put them off reading it. A rule of thumb is: only post the minimum to ask the question. Post snippets of files if appropriate, rather than the whole thing. Use the [php][/php] or [code][/code] tags to make things clearer to read.

Check that you are posting to the correct forum, too. Feature requests have their own section, as do general questions, support questions, discussions on plugins, and so forth. Ensure that you are posting on the right thread as well: don't start a new topic on an unconnected, existing, conversation.

When asking a question, provide all the relevant information. Your symfony version number, or at least the build (eg "the latest alpha") is very relevant. Also, the version of PHP you are running, and your OS (*nix, Windows, Mac?). The Apache web server will generally be assumed, so if you are using IIS or some other product, say so.

Don't run before you can walk

It is tempting to delve straight into new projects without understanding the basics first. Symfony is a great way to simplify web development, but it can't do the coding for you! A good understanding of programming is a prerequisite, ideally in PHP, or at least some object-oriented language. A reasonable understanding of, say, Java or .net should be sufficient to get used to the OO concepts of PHP5.

You should be used to your command line and your environment too. Find out how to add paths to your system if you don't know already, and get some practise installing PHP with a web server. Play around with installing a PHP accelerator, perhaps, or a web server other than Apache. Understand how URL rewriting works.

It is also worth garnering a solid understanding of web development and database design. The way HTTP works is essential, including the separate purposes of GET and POST. How cookies work, and host headers. Much information on database normalisation and concepts is available on the net, so if there is something you are unsure of, spend some time doing some research and self-tutorial, if you can.

That all said, if you seem willing to put the necessary time and effort in, you will often find people in the symfony fora who are happy to help you out, even if you are new to some of the necessary concepts.

Lastly, if you can, take a good look at the askeet tutorial before posting questions, since many common tasks are already addressed there.

How to deal with delay

If you don't get an answer straight away, there are a number of things you can do. You can continue to work on the problem, and you may find that you discover the answer yourself anyway (sometimes posting a problem succintly in a forum can trigger an idea that your previously hadn't thought of). If you try some things, then add them to your thread to demonstrate you are actively working on your issue. And, of course, if you are successful, then add a note to your thread explaining briefly how you sorted it out - it may well be of use to someone else.

Alternatively, whilst your question is sitting in the forum unanswered, work on something else. Come back to it later, at which point you may well have had a 'eureka moment' yourself, or you may have garnered some answers.

If your question remains unanswered after a day or two, then 'ping' it by adding a polite re-ask at the end. Don't chase every couple of hours, and generally speaking, don't chase more than once or twice. If your thread is stubbornly not attracting any attention, then consider re-phrasing your question, or simplifying it. Make sure it is to the point, otherwise it becomes a chore for others to read through.

Be nice

It should go without saying, but remember that text-based communications doesn't carry tonal information. So, go easy on the sarcasm and biting wit, and use emoticons as necessary to avoid misunderstanding. Be careful with criticism, especially if you are new: if you don't like the documentation, for example, feel free to offer constructive comments, but don't tear something to shreds just because it won't work for you. It is worth being even more careful when criticising other forum members, as a badly-phrased comment can easily spiral a discussion out of control.

Don't forget to thank anyone who helps you, even if their input did not fully solve the problem. It should go without saying, of course, but participants who express gratitude are much more likely to be helped again.

Be helpful

Again, if you manage to solve what you asked for in the forum, please post the solution. Nothing is more frustrating to users reading a thread that describes their problem, but finding that it finishes with a message saying only "never mind, I solved it".

Once you get going with symfony, you will have more knowledge on it than people who are completely new to it. So, if you see someone struggling on the basics, offer them some help - especially if you have received assistance yourself in the past. If you discover a bug, then discuss it in a forum, and if it is agreed that it is a fault, raise a trac ticket on it (there are instructions on getting an account on the tickets page).

Good luck!