To make the basil oil, strip the basil leaves from the stalks and place in a large heatproof bowl. Half fill a large bowl with cold water and add a few ice cubes. Boil a kettle full of fresh water and pour over the basil. Immediately drain in a colander and plunge into the bowl of iced water. This will help set the vibrant green colour. Leave for five minutes.
Drain the cooled basil leaves in a colander and tip out onto a clean tea towel. Pat gently until as dry as possible then tip into a jug. Add the oil and blend to a purée using a stick blender. (You can also do this in a small food processor.) Season with salt and freshly ground black pepper. Pour into a small bowl and set aside for at least 30 minutes. (You can then press the basil and oil through a fine sieve if you like, or leave it just as it is.)
To prepare the soup, heat the oil in a large non-stick saucepan or frying pan and fry the onion and celery very gently for five minutes, or until softened but not coloured, stirring often. While the onion is cooking, Cut the tomato flesh into roughly 1cm/½in pieces.
Add the garlic, leek and courgettes to the pan with the onion. Stir over a low heat for a minute or two, then stir in the freshly chopped tomatoes. Pour over the chicken stock and bring to the boil.
Break the spaghetti into 2-3cm/1in short lengths and drop into the pan. Add the tomato purée and return to the boil. Cook for eight minutes, stirring occasionally. Add the peas, broad and green beans and cook for a further five minutes, or until the pasta is just tender.
Season the soup with salt and lots of freshly ground black pepper. Serve in deep bowls.
Drizzle with the basil oil and either grate or shave the parmesan with a vegetable peeler over the top. (Any leftover basil oil can be covered and kept in the fridge for three days. Allow stand at room temperature before using.)