Rasmus Lerdorf ਅਤੇ PHP ਦੀ ਕਹਾਣੀ—ਕਿਵੇਂ ਕੁਝ ਛੋਟੇ ਵੈੱਬ ਸਕ੍ਰਿਪਟਸ ਇੱਕ ਵਿਆਪਕ ਪਲੇਟਫਾਰਮ ਬਣ ਗਏ, ਅਤੇ ਕਿਉਂ PHP ਅਜਿਹੇ ਬਹੁਤ ਸਾਰੇ ਸਾਈਟਾਂ ਚੱਲਾਉਂਦਾ ਹੈ।

PHP ਕਿਸੇ ਵਿਸ਼ਾਲ ਪਲੇਟਫਾਰਮ ਜਾਂ ਸੁਚੱਜੀ ਤਰੀਕੇ ਨਾਲ ਬਣਾਈ ਗਈ ਭਾਸ਼ਾ ਵਜੋਂ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਈ ਸੀ। ਇਹ ਇਸ ਲਈ ਸ਼ੁਰੂ ਹੋਈ ਕਿ Rasmus Lerdorf ਆਪਣੀ ਨਿੱਜੀ ਵੈੱਬਸਾਈਟ ਕੁਝ ਹੱਦ ਤਕ ਆਟੋਮੇਟ ਕਰਨ ਚਾਹੁੰਦੇ ਸਨ ਤਾਂ ਕਿ ਹਰ ਵਾਰੀ ਦੁਹਰਾਉਂਦੇ ਕੰਮ ਨਾ ਕਰਨ ਪੈਂ।
ਇਹ ਨੁਕਤਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿਉਂਕਿ ਇਹ ਬਹੁਤ ਕੁਝ ਸਮਝਾਉਂਦਾ ਹੈ ਕਿ PHP ਅੱਜ ਵੀ ਉਹ ਅਹਿਸਾਸ ਕਿਉਂ ਦਿੰਦੀ ਹੈ ਜੋ ਦਿੰਦੀ ਹੈ।
Lerdorf ਉਸ ਸਮੇਂ ਵੈੱਬ ਲਈ ਵਿਕਾਸਕਰਤਾ ਸੀ, ਜਦੋਂ ਪੰਨੇ ਜ਼ਿਆਦਾਤਰ static ਸਨ ਅਤੇ HTML ਤੋਂ ਅੱਗੇ ਕੋਈ ਵੀ ਅਪਡੇਟ ਜਲਦੀ ਘੁੱਟ ਜਾਣ ਵਾਲਾ ਕੰਮ ਹੁੰਦਾ ਸੀ। ਉਹ ਸਧਾਰਨ ਸਕ੍ਰਿਪਟਸ ਚਾਹੁੰਦੇ ਸਨ ਜੋ ਵਿਜ਼ਟਰ ਟ੍ਰੈਕ ਕਰ ਸਕਣ, ਆਮ ਪੰਨਾ ਹਿੱਸਿਆਂ ਨੂੰ ਦੁਹਰਾਉਣ ਯੋਗ ਬਣਾ ਸਕਣ, ਅਤੇ ਸਮੱਗਰੀ ਡਾਇਨੈ민ਿਕ ਤਰੀਕੇ ਨਾਲ ਪੈਦਾ ਕਰ ਸਕਣ।
ਦੂਜੇ ਸ਼ਬਦਾਂ ਵਿੱਚ: ਉਹ ਐਹੋ ਜਿਹੇ ਟੂਲ ਚਾਹੁੰਦੇ ਸਨ ਜੋ ਉਸਨੂੰ ਤਬਦੀਲੀਆਂ ਤੇਜ਼ੀ ਨਾਲ ਰਿਲੀਜ਼ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਨ।
“ਨਿੱਜੀ ਟੂਲ” ਕੋਈ ਬ੍ਰਾਂਡ ਨਹੀਂ ਸੀ—ਇਹ ਇੱਕ ਮਨੋਭਾਵ ਸੀ। ਸ਼ੁਰੂਆਤੀ ਵੈੱਬ ਨਿਰਮਾਤੇ ਅਕਸਰ ਛੋਟੀਆਂ ਯੂਟਿਲਿਟੀਆਂ ਲਿਖਦੇ ਸਨ ਤਾਂ ਕਿ કુਝ ਨਿਰਸ ਕੰਮ ਆਟੋਮੇਟ ਹੋ ਜਾਣ:
PHP ਦੇ ਸਭ ਤੋਂ ਸ਼ੁਰੂਆਤੀ ਵਰਜਨਾਂ ਨੂੰ ਉਹੀ ਪ੍ਰਯੋਗਿਕ, "ਕਰ ਦਿਓ" ਰਵੱਈਆ ਆਕਾਰ ਦਿੱਤਾ ਗਿਆ।
ਜਦੋਂ ਤੁਸੀਂ PHP ਦੀਆਂ ਜੜਾਂ ਜਾਣ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਇਸ ਦੀਆਂ ਕਈ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸਮਝਣਯੋਗ ਹੋ ਜਾਂਦੀਆਂ ਹਨ: HTML ਵਿੱਚ ਸਿੱਧਾ ਕੋਡ ਸੰਜੋੜਨ 'ਤੇ ਧਿਆਨ, ਆਮ ਵੈੱਬ ਟਾਸਕਾਂ ਲਈ ਮੁੱਖ ਲਾਇਬ੍ਰੇਰੀ, ਅਤੇ ਸੁਵਿਧਾ ਨੂੰ ਪੱਧਰਿਕਤਾ ਦੇਣ ਦਾ ਰੁਝਾਨ।
ਇਹ ਫ਼ੈਸਲੇ PHP ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਫੈਲਾਉਣ ਵਿੱਚ ਮਦਦ ਮਿਲੀ, ਪਰ ਇਹਨਾਂ ਦੇ ਸਾਥ ਕੁਝ ਦੋ-ਪਾਸੇ ਪ੍ਰਭਾਵ ਵੀ ਆਏਗਾ—ਜਿਨ੍ਹਾਂ ਬਾਰੇ ਅਸੀਂ ਅੱਗੇ ਚਰਚਾ ਕਰਾਂਗੇ।
ਇਹ ਲੇਖ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ PHP ਕਿਵੇਂ Lerdorf ਦੀਆਂ ਸਕ੍ਰਿਪਟਸ ਤੋਂ ਇਕ ਸਮੁਦਾਇ-ਚਲਿਤ ਭਾਸ਼ਾ ਬਣੀ, ਇਹ ਕਿਉਂ ਹੋਸਟਿੰਗ ਅਤੇ LAMP ਸਟੈਕ ਨਾਲ ਚੰਗੀ ਤਰ੍ਹਾਂ ਫਿੱਟ ਹੋਈ, WordPress ਵਰਗੀਆਂ ਐਕੋਸਿਸਟਮਾਂ ਨੇ ਕਿਸ ਤਰ੍ਹਾਂ ਇਸ ਨੂੰ ਵਧਾਇਆ, ਅਤੇ ਆਧੁਨਿਕ PHP (7 ਅਤੇ 8+) ਨੇ ਕੀ ਬਦਲਾਅ ਕੀਤੇ—ਤਾਂ ਜੋ ਤੁਸੀਂ ਅੱਜ PHP ਨੂੰ ਹਕੀਕਤ ਦੇ ਆਧਾਰ 'ਤੇ ਅੰਕੜਾ ਸਕੋ, ਨ ਕਿ ਨੋਸਟਾਲਜੀਆ ਜਾਂ ਹਾਈਪ ਦੇ ਆਧਾਰ 'ਤੇ।
1990 ਦੇ ਦਰਮਿਆਨੇ ਵੈੱਬ ਜ਼ਿਆਦਾਤਰ static HTML ਸੀ। ਜੇ ਤੁਹਾਨੂੰ ਕੁਝ ਵੀ ਡਾਇਨੈ민ਿਕ ਚਾਹੀਦਾ ਸੀ—ਫਾਰਮ ਪ੍ਰੋਸੈਸਿੰਗ, ਕਾਊਂਟਰ, ਯੂਜ਼ਰ-ਅਨੁਸਾਰ ਪੇਜ—ਤਾਂ ਤੁਸੀਂ ਆਮ ਤੌਰ 'ਤੇ CGI ਸਕ੍ਰਿਪਟ ਵਰਤਦੇ ਸਨ, ਬਹੁਤ ਵਾਰ Perl ਵਿੱਚ।
ਇਹ ਕੰਮ ਕਰਦਾ ਸੀ, ਪਰ ਇਹ ਸਮੂਹਿਕ ਤੌਰ 'ਤੇ ਸੁਗਮ ਨਹੀਂ ਸੀ।
CGI ਪ੍ਰੋਗਰਾਮ ਹਰ ਰਿਕਵੈਸਟ ਲਈ ਅਲੱਗ ਪ੍ਰੋਸੈਸ ਵਜੋਂ ਚਲਦੇ ਸਨ। ਸਧਾਰਨ ਟਾਸਕ ਲਈ ਇਹ ਬਹੁਤ ਸਾਰੇ ਹਿੱਸੇ ਲਿਆਉਂਦਾ: ਸਕ੍ਰਿਪਟ ਫਾਈਲ ਜਿਸ ਦੀਆਂ ਸਹੀ ਪਰਮੀਸ਼ਨ ਹੋਣ, ਸਰਵਰ ਕਨਫਿਗ, ਅਤੇ ਇੱਕ ਵਿਚਾਰ-ਮਾਡਲ ਜੋ "ਵੈੱਬ ਪੰਨਾ ਲਿਖਣਾ" ਜਿਹਾ ਮਹਿਸੂਸ ਨਹੀਂ ਹੁੰਦਾ। ਤੁਸੀਂ ਸਿਰਫ਼ HTML ਵਿੱਚ ਥੋੜ੍ਹ੍ਹੀ ਲੌਜਿਕ ਨਹੀਂ ਮਿਲਾ ਰਹੇ—ਤੁਸੀਂ ਇੱਕ ਛੋਟਾ ਪ੍ਰੋਗਰਾਮ ਬਣਾ ਰਹੇ ਹੋ ਜੋ HTML ਟੈਕਸਟ ਵਜੋਂ ਨਿਕਾਸ ਕਰਦਾ ਹੈ।
ਹੋਬੀ ਸਾਈਟਾਂ ਅਤੇ ਛੋਟੇ ਕਾਰੋਬਾਰਾਂ ਲਈ ਆਮ ਲੋੜਾਂ ਦੁਹਰਾਉਣਯੋਗ ਅਤੇ ਪ੍ਰਯੋਗਿਕ ਹੁੰਦੀਆਂ ਸਨ:
ਬਹੁਤ ਸਾਰੇ ਲੋਕ shared hosting 'ਤੇ ਸਨ ਜਿੱਥੇ CPU, ਮੈਮੋਰੀ ਸੀਮਿਤ ਸੀ ਅਤੇ ਸਰਵਰ ਸੈਟਿੰਗਾਂ 'ਤੇ ਘੱਟ ਨਿਯੰਤਰਣ ਸੀ। ਕਸਟਮ ਮਾਡਿਊਲ ਇੰਸਟਾਲ ਕਰਨਾ ਜਾਂ ਲੰਬੇ ਸਮੇਂ ਤੇ ਚੱਲਣ ਵਾਲੀਆਂ ਸੇਵਾਵਾਂ ਚਲਾਉਣਾ ਹਕੀਕਤ ਵਿੱਚ ਨਹੀਂ ਸੀ। ਜੋ ਤੁਸੀਂ ਕਰ ਸਕਦੇ ਸੀ, ਉਹ ਸੀ ਫਾਈਲਾਂ ਅਪਲੋਡ ਕਰਕੇ ਸਧਾਰਨ ਸਕ੍ਰਿਪਟ ਚਲਾਉਣਾ।
ਇਹ ਸੀਮਾਵਾਂ ਇੱਕ ਐਸੀ ਟੂਲ ਵੱਲ ਧੱਕੀਆਂ ਜੋ:
ਆਂਤਰ ਇਹੀ ਖਾਲੀ ਸੀ—statik ਪੰਨਿਆਂ ਅਤੇ ਭਾਰੀ ਸਕ੍ਰਿਪਟਿੰਗ ਦੇ ਵਿਚਕਾਰ ਜੋ ਖਾਲੀਪਨ ਸੀ, PHP ਉਸ ਨੂੰ ਭਰਦਾ ਹੈ।
Rasmus Lerdorf ਭਾਸ਼ਾ ਇਜਾਦ ਕਰਨ ਲਈ ਨਹੀਂ ਬੈਠੇ। ਉਹ ਕੁਝ ਬਹੁਤ ਸਧਾਰਨ ਚੀਜ਼ ਚਾਹੁੰਦੇ ਸਨ: ਆਪਣੀ ਸਾਈਟ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਚਲਾਉਣ ਦਾ ਤਰੀਕਾ।
ਸਭ ਤੋਂ ਸ਼ੁਰੂਆਤੀ “PHP” ਕੰਮ ਛੋਟੇ C ਪ੍ਰੋਗਰਾਮਾਂ ਦੇ ਕਲੇਕਸ਼ਨ ਵਜੋਂ ਸ਼ੁਰੂ ਹੋਇਆ ਜੋ ਉਹ ਆਪਣੀ online resume 'ਤੇ ਹੋਣ ਵਾਲੇ ਵਿਜ਼ਿਟਸ ਟਰੈਕ ਕਰਨ ਲਈ ਵਰਤਦਾ ਸੀ, ਨਾਲ ਹੀ ਕੁਝ ਯੂਟਿਲਿਟੀਆਂ ਜੋ ਸਾਈਟ ਦੀਆਂ ਬੁਨਿਆਦੀ ਚੋਰੀਆਂ ਨੂੰ ਬਿਨਾਂ ਹੱਥ-ਐਡੀਟਿੰਗ ਦੇ ਸੰਭਾਲ ਸਕਦੀਆਂ।
ਉਸ ਸਮੇਂ, ਪਤਾ ਲਾਉਣਾ ਕਿ ਤੁਹਾਡੇ ਪੰਨੇ 'ਤੇ ਕੌਣ ਆ ਰਿਹਾ ਹੈ (ਅਤੇ ਕਿੰਨੀ ਵਾਰ) ਸਧਾਰਨ ਸੀ ਕਿ analytics snippet ਲਗਾ ਕੇ ਨਹੀਂ ਹੋ ਜਾਂਦਾ ਸੀ। Lerdorf ਦੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਰਿਕਵੇਸਟ ਲੌਗ ਅਤੇ ਸੰਖੇਪ ਤਿਆਰ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੀਆਂ, ਜਿਸ ਨਾਲ ਟ੍ਰੈਫਿਕ ਪੈਟਰਨ ਸਮਝਣਾ ਆਸਾਨ ਹੋ ਗਿਆ।
ਇਨ੍ਹਾਂ ਦੇ ਨਾਲ, ਉਸਨੇ ਆਮ ਵੈੱਬ ਕਾਰਜਾਂ ਲਈ ਹੈਲਪਰ ਬਣਾਏ—ਸਧਾਰਨ ਟੈਮਪਲੇਟਿੰਗ, ਛੋਟੇ ਡਾਇਨੈ민ਿਕ ਆਉਟਪੁੱਟ ਅਤੇ ਫਾਰਮ ਹੈਂਡਲਿੰਗ—ਤਾਕਿ ਸਾਈਟ “ਜ਼ਿੰਦਾ” ਮਹਿਸੂਸ ਹੋਵੇ ਬਿਨਾਂ ਪੂਰੇ ਕਸਟਮ ਐਪ ਬਣਾਉਣ ਦੇ।
ਜਦੋਂ ਤੁਸੀਂ ਰਿਕਵੇਸਟ ਟ੍ਰੈਕਿੰਗ, ਫਾਰਮ ਪ੍ਰੋਸੈਸਿੰਗ ਅਤੇ ਪੰਨਾ ਹਿੱਸਿਆਂ ਦੀ ਦੁਹਰਾਉਣਯੋਗਤਾ ਲਈ ਟੂਲ ਰੱਖਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਗਲਤੀ ਨਾਲ ਕੁਝ ਐਸਾ ਤਿਆਰ ਕਰ ਲੈਂਦੇ ਹੋ ਜੋ ਹੋਰ ਲੋਕ ਵੀ ਵਰਤ ਸਕਦੇ ਹਨ।
ਇਹੀ ਮੁੱਖ ਮੋੜ ਸੀ: ਫੰਕਸ਼ਨੇਲਟੀ ਕਿਸੇ ਇੱਕ ਲੇਆਊਟ ਜਾਂ ਇੱਕ ਪੰਨੇ ਨਾਲ ਜੁੜੀ ਨਹੀਂ ਸੀ। ਇਹ ਇੰਨੀ ਜਨਰਿਕ ਸੀ ਕਿ ਹੋਰ ਸਾਈਟ ਮਾਲਕ ਵੀ ਆਪਣੇ ਪ੍ਰੋਜੇਕਟ ਲਈ ਇਹਨੂੰ ਕਾਪੀ ਕਰਨ ਦਾ ਸੋਚ ਸਕਦੇ ਸਨ।
ਕਿਉਂਕਿ ਇਹ ਇੱਕ ਟੂਲਬਾਕਸ ਵਜੋਂ ਸ਼ੁਰੂ ਹੋਇਆ, ਇਸ ਦੀ ਯੂਜ਼ਰ-ਸਹੂਲਤ ਪ੍ਰਯੋਗਿਕ ਸੀ: ਆਮ ਕੰਮ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਕਰੋ, ਓਵਰ-ਡਿਜ਼ਾਈਨ ਨਾ ਕਰੋ, ਅਤੇ ਐਨਟਰੀ-ਬੈਰੀਅਰ ਨੂੰ ਨੀਵਾਂ ਰੱਖੋ।
ਇਹ ਰਵੱਈਆ—ਪਹਿਲਾਂ ਉਪਯੋਗੀਤਾ, ਬਾਅਦ ਵਿੱਚ polish—PHP ਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਹੀ ਪਹੁੰਚਯੋਗ ਬਣਾਉਂਦਾ ਸੀ।
ਸੰਖੇਪ: PHP ਦੀਆਂ ਜੜਾਂ ਅਕਾਦਮਿਕ ਨਹੀਂ ਸਨ; ਉਹ ਸਮੱਸਿਆ-ਚਾਲਿਤ ਸਨ—ਹਕੀਕਤ ਵਿੱਚ ਵੈੱਬਸਾਈਟ ਨੂੰ ਘੱਟ ਰੁਕਾਵਟ ਨਾਲ ਚਲਾਉਣ ਲਈ।
PHP ਉਸ ਤਰੀਕੇ ਨਾਲ "ਭਾਸ਼ਾ" ਵਜੋਂ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਈ जिस ਤਰੀਕੇ ਨਾਲ ਅਸੀਂ ਅੱਜ ਸੋਚਦੇ ਹਾਂ। ਪਹਿਲਾ ਜਨਤਕ ਮੀਲ-ਪੱਥਰ ਸੀ PHP/FI, ਜਿਸਦਾ ਪੂਰਾ ਨਾਮ ਸੀ “Personal Home Page / Forms Interpreter.”
ਉਸ ਨਾਮ ਵਿੱਚ ਹੀ ਇਸ਼ਾਰਾ ਹੈ: ਇਹ ਸਭ ਕੁਝ ਬਣਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ। ਇਹ ਲੋਕਾਂ ਨੂੰ ਡਾਇਨੈ민ਿਕ ਪੰਨੇ ਬਣਾਉਣ ਅਤੇ ਵੈੱਬ ਫਾਰਮਾਂ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਨ ਵਿੱਚ ਸਹਾਇਤਾ ਦੇਣ ਲਈ ਬਣਾਇਆ ਗਿਆ ਸੀ ਬਿਨਾਂ ਹਰ ਟਾਸਕ ਲਈ ਪੂਰਾ ਪ੍ਰੋਗਰਾਮ ਲਿਖਣ ਦੀ ਲੋੜ ਤੋਂ।
PHP/FI ਕੁਝ ਪ੍ਰਯੋਗਿਕ ਵਿਚਾਰਾਂ ਨੂੰ ਇਕੱਠਾ ਕਰਦਾ ਸੀ ਜੋ ਮਿਲ ਕੇ ਸ਼ੁਰੂਆਤੀ ਵੈੱਬ ਵਿਕਾਸ ਨੂੰ ਕਾਫੀ ਆਸਾਨ ਬਣਾਉਂਦੇ ਸਨ:
ਇਹ polished ਨਹੀਂ ਸੀ, ਪਰ ਇਹ ਲੋਕਾਂ ਨੂੰ ਉਹ ਸਾਰਾ glue code ਘਟਾ ਕੇ ਦੇ ਰਿਹਾ ਸੀ ਜੋ ਪੰਨਾ ਚਲਾਉਣ ਲਈ ਲਾਜ਼ਮੀ ਹੁੰਦਾ।
ਸ਼ੁਰੂਆਤੀ ਸਾਈਟਾਂ ਨੂੰ ਜਲਦੀ ਹੀ ਇੱਕ ਦੀਵਾਰ ਮਿਲੀ: ਜਿਵੇਂ ਹੀ ਤੁਸੀਂ ਫੀਡਬੈਕ ਫਾਰਮ, ਗੈਸਟਬੁੱਕ, ਸਾਈਨ-ਅਪ ਜਾਂ ਬੁਨਿਆਦੀ ਖੋਜ ਚਾਹੁੰਦੇ ਸੀ, ਤੁਹਾਨੂੰ ਯੂਜ਼ਰ ਇਨਪੁੱਟ ਲੈਣ ਅਤੇ ਉਸ ਨਾਲ ਕੁਝ ਕਰਨ ਦੀ ਲੋੜ ਪੈਂਦੀ ਸੀ।
PHP/FI ਨੇ ਫਾਰਮ ਹੈਂਡਲਿੰਗ ਨੂੰ ਇੱਕ ਕੋਰ ਉਪਯੋਗਤਾ ਬਣਾ ਦਿੱਤਾ। ਬਦਲੇ ਵਿੱਚ, ਫਾਰਮਾਂ ਨੂੰ ਇੱਕ ਉੱਨਤ ਫੀਚਰ ਮੰਨਣ ਦੀ ਥਾਂ, ਇਸ ਨੇ ਉਨ੍ਹਾਂ ਨੂੰ ਆਸਾਨ ਬਣਾਇਆ—ਸਬਮਿਟ ਕੀਤੇ ਮੁੱਲ ਪੜ੍ਹਨਾ ਅਤੇ ਨਤੀਜਾ ਪੰਨਾ ਬਣਾਉਣਾ ਆਸਾਨ ਹੋ ਗਿਆ।
PHP/FI ਦਾ ਸਭ ਤੋਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਵਿਚਾਰ ਉਸਦਾ ਟੈਮਪਲੇਟਿੰਗ ਅੰਦਾਜ਼ ਸੀ: HTML ਨੂੰ ਮੁੱਖ ਦਸਤਾਵੇਜ਼ ਰੱਖੋ, ਅਤੇ ਛੋਟੇ ਸਰਵਰ ਲੌਜਿਕ ਦੇ ਕੁਟਕੋ ਜੋੜੋ।
<!-- HTML-first, with small dynamic pieces -->
<p>Hello, <?php echo $name; ?>!</p>
ਡਿਜ਼ਾਈਨਰਾਂ ਅਤੇ ਟਿੰਕਰਰਾਂ ਲਈ ਇਹ ਕੁਦਰਤੀ ਮਹਿਸੂਸ ਹੁੰਦਾ ਸੀ: ਤੁਸੀਂ ਇੱਕ ਪੰਨਾ ਐਡਿਟ ਕਰ ਸਕਦੇ ਸੀ ਅਤੇ “ਕਾਫ਼ੀ” ਡਾਇਨੈ민ਿਕ ਵਿਹੇਵਿਅਰ ਜੋੜ ਸਕਦੇ ਸੀ ਬਿਨਾਂ ਕਿਸੇ ਬਹੁਤ ਵੱਖਰੇ ਸਿਸਟਮ ਨੂੰ ਅਪਣਾਏ।
PHP/FI ਸੁਚੱਜਾ ਨਹੀਂ ਸੀ, ਅਤੇ ਨਾ ਹੀ ਇਸ ਦਾ ਟੀਚਾ ਸੋਭਾ-ਰੂਪ ਹੋਣਾ ਸੀ। ਲੋਕਾਂ ਨੇ ਇਸਨੂੰ ਇਸ ਲਈ ਅਪਣਾਇਆ ਕਿਉਂਕਿ ਇਹ:
ਇਹ “killer features” ਸ਼ਾਇਦ ਸ਼ਾਨਦਾਰ ਨਹੀਂ ਸਨ—ਪਰ ਉਹ ਸੀ ਜੋ ਸ਼ੁਰੂਆਤੀ ਵੈੱਬ ਨੂੰ ਦਰਕਾਰ ਸੀ।
Rasmus Lerdorf ਦੀਆਂ ਪਹਿਲੀਆਂ PHP ਸਕ੍ਰਿਪਟਾਂ ਉਸਦੀ ਆਪਣੀ ਸਮੱਸਿਆ ਹੱਲ ਕਰਨ ਲਈ ਬਣੀਆਂ: ਵਿਜ਼ਟਰ ਟ੍ਰੈਕ ਕਰਨਾ, ਆਮ ਪੰਨਾ ਹਿੱਸਿਆਂ ਦੀ ਦੁਹਰਾਉਣਯੋਗਤਾ, ਅਤੇ ਕੰਮ ਘਟਾਉਣਾ।
ਉਹ ਛੋਟੀ ਯੂਟਿਲਿਟੀਜ਼ "PHP" ਨੂੰ ਉਹ ਰੂਪ ਦਿੰਦੀਆਂ ਹਨ ਜੋ ਅਸੀਂ ਅੱਜ ਜਾਣਦੇ ਹਾਂ, ਪਰ ਇਹ ਤਬਕੀਕਾ ਕਿਸੇ ਇਕ ਵੱਡੇ ਰੀਰਾਈਟ ਨਾਲ ਨਹੀਂ ਹੋਇਆ—ਇਹ ਹੋਰ ਡਿਵੈਲਪਰਾਂ ਦੀ ਮੰਗ ਅਤੇ ਯੋਗਦਾਨ ਦੀ ਸਧਾਰਨ ਖਿੱਚ ਸੀ।
ਜਿਵੇਂ ਹੀ PHP ਜਨਤਕ ਹੋਇਆ, ਯੂਜ਼ਰਾਂ ਨੇ ਫਿਕਸ, ਛੋਟੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਸੁਝਾਅ ਭੇਜਣੇ ਸ਼ੁਰੂ ਕੀਤੇ। ਇਹ ਫੀਡਬੈਕ ਲੂਪ ਮਹੱਤਵਪੂਰਨ ਰਹਾ: ਪ੍ਰੋਜੈਕਟ ਹੁਣ ਕਈ ਵੈਬਮਾਸਟਰਾਂ ਦੀਆਂ ਲੋੜਾਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਸੀ, ਨਾ ਕਿ ਇੱਕ ਨਿੱਜੀ ਸਾਈਟ ਦੀਆਂ।
ਡਾਕਯੂਮੇਟੇਸ਼ਨ ਸੁਧਰੀ, ਏਜ ਵਾਲੀਆਂ ਗਲਤੀਆਂ ਪੈਚ ਹੋਈਆਂ, ਅਤੇ ਭਾਸ਼ਾ ਅਜੇ ਰਵਾਇਤੀ ਰੂਪ ਬਣਾਉਣੀ ਸ਼ੁਰੂ ਹੋ ਗਈ।
ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਮੋੜ PHP 3 ਸੀ, ਜਿਸ ਨੇ ਕੋਰ ਇੰਜਿਨ ਨੂੰ ਦੁਬਾਰਾ ਲਿਖਿਆ ਅਤੇ ਨਾਮ "PHP: Hypertext Preprocessor" ਲਿਆ। ਇਹ ਸਿਰਫ਼ branding ਨਹੀਂ ਸੀ—ਇਸ ਰੀਰਾਈਟ ਨਾਲ ਭਾਸ਼ਾ ਜ਼ਿਆਦਾ ਸੰਗਠਿਤ ਅਤੇ ਐਕਸਟੈਂਡ ਕਰਨ ਯੋਗ ਬਣੀ, ਜਿਸ ਨਾਲ PHP ਵਿਸਥਾਰ ਕਰ ਸਕੀ ਬਿਨਾਂ ਅਨਿਆਯਸ ਪੁਰਾਣੇ ਤੱਤਾਂ ਨੂੰ ਢਹਿੱਤ ਕਰਨ ਦੇ।
ਵਿਆਪਕ ਯੂਜ਼ਰ ਕਮਿਊਨਿਟੀ ਨੇ ਐਕਸਟੈਂਸ਼ਨਾਂ ਲਈ ਦਬਾਅ ਪਾਇਆ ਜੋ ਉਹਨਾਂ ਦੇ ਉਪਕਰਣਾਂ ਨਾਲ ਜੁੜ ਸਕਦੀਆਂ—ਤਾਂ ਕਿ ਤੁਸੀਂ ਇੱਕ ਹੀ ਸੈਟਅਪ ਨਾਲ ਨਾ ਰੁਕੋ। ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੇ PHP ਨੂੰ ਵੱਖ-ਵੱਖ ਡੈਟਾਬੇਸ ਅਤੇ ਸਰਵਿਸਾਂ ਨਾਲ ਜੋੜਿਆ, ਇਸ ਲਈ ਤੁਸੀਂ ਇੱਕ ਸਿਰਫ਼ ਟੂਲ ਜੋ HTML ਨਿਕਾਲਦਾ ਸੀ, ਤੋਂ ਡੇਟਾ-ਡ੍ਰਿਵਨ ਵੈੱਬਸਾਈਟਾਂ ਬਣਾਉਣ ਦੇ ਯੋਗ ਬਣ ਗਏ—ਗੈਸਟਬੁੱਕ, ਫੋਰਮ, ਕੈਟਾਲੋਗ ਅਤੇ ਆਰੰਭਿਕ ਈ-ਕਾਮਰਸ ।
ਇਹ ਮਹੱਤਵਪੂਰਨ ਬਦਲਾਅ ਸੀ: ਕਮਿਊਨਿਟੀ ਯੋਗਦਾਨ ਸਿਰਫ਼ ਫੀਚਰ ਨਹੀਂ ਜੋੜਦੇ—ਉਹ PHP ਦੇ ਰੂਪ ਨੂੰ ਇੱਕ ਸਾਂਝੇ, ਵਧਣਯੋਗ ਪਲੇਟਫਾਰਮ ਬਣਾਉਂਦੇ ਹਨ।
PHP ਇੰਨੇ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਵਿਕਸਿਤ ਨਹੀਂ ਹੁੰਦੀ ਕੇਵਲ ਇਸ ਲਈ ਕਿ ਇਹ ਅਸਾਨ ਸੀ। ਇਕ ਵੱਡਾ ਹਿੱਸਾ ਇਸ ਦੀ ਕਹਾਣੀ ਦਾ ਇਹ ਹੈ ਕਿ ਕੋਰ "ਇੰਜਿਨ" ਨੂੰ ਮਜ਼ਬੂਤ ਅਪਡੇਟ ਮਿਲਿਆ—ਇਕ ਐਸਾ ਅਪਡੇਟ ਜਿਸ ਨੇ PHP ਨੂੰ ਤੇਜ਼, ਜ਼ਿਆਦਾ ਸਥਿਰ ਅਤੇ ਐਕਸਟੈਂਡ ਕਰਨ ਯੋਗ ਬਣਾਇਆ।
Zend (Andi Gutmans ਅਤੇ Zeev Suraski) ਨੇ Zend Engine ਪੇਸ਼ ਕੀਤਾ—ਇਹ PHP ਲਈ ਨਵਾਂ ਕੋਰ ਸੀ। ਇਸਨੂੰ ਸੋਚੋ ਜਿਵੇਂ ਕਾਰ ਦਾ ਮੋਟਰ ਬਦਲ ਦਿੱਤਾ ਗਿਆ ਹੋਵੇ ਪਰ ਕਾਰ ਦੀ ਸੂਰਤ ਇੱਕੋ ਰਹੀ।
ਡਿਵੈਲਪਰ ਆਮ PHP ਕੋਡ ਨੂੰ ਲਿਖਦੇ ਰਹੇ, ਪਰ ਰਨਟਾਇਮ ਅੰਦਰੋਂ ਬਿਹਤਰ ਬਣ ਗਈ।
ਇਸ ਸਟਰਕਚਰ ਨਾਲ:
PHP 4 (Zend Engine 1 ਨਾਲ) shared hosting ਮਾਡਲ ਦੇ ਸਮੇਂ 'ਤੇ ਆਇਆ।
Shared hosting ਪ੍ਰੋਵਾਇਡਰ PHP ਨੂੰ ਆਮ ਅਤੇ ਸਸਤੇ ਢੰਗ ਨਾਲ ਮੁਹੱਈਆ ਕਰ ਸਕਦੇ ਸਨ—ਕਈ ਨੇ ਕੀਤਾ ਵੀ। ਇਹ ਉਪਲਬਧਤਾ ਇੱਕ ਗ੍ਰੋਥ ਲੂਪ ਬਣ ਗਈ: ਹੋਰ ਹੋਸਟ PHP ਸਹਿਯੋਗ ਦਿੰਦੇ, ਹੋਰ ਲੋਕ ਇਸ ਨੂੰ ਵਰਤਦੇ; ਵੱਧ ਵਰਤੋਂ ਹੋਸਟ ਨੂੰ ਹੋਰ ਸਹਿਯੋਗ ਦੇਣ ਲਈ ਪ੍ਰੇਰਿਤ ਕਰਦੀ।
ਅਮਲੀ ਤੌਰ 'ਤੇ, PHP 4 "ਕافی ਤੇ ਹਰ ਥਾਂ" ਸੀ। ਉਹ ਉਬਲਦਾਰਤਾ ਕਿਸੇ ਵੀ ਭਾਸ਼ਾ ਵਿਸ਼ੇਸ਼ਤਾਂ ਮਾਤਰ ਨਹੀਂ ਸੀ—ਇਹ ਉਪਲਬਧਤਾ ਹੀ ਘਣਾ ਮਾਇਨੇ ਰੱਖਦੀ ਸੀ।
PHP 5 (Zend Engine 2) ਨੇ ਟੀਮਾਂ ਲਈ ਵੱਡੇ ਕੋਡਬੇਸਾਂ ਨੂੰ ਆਯੋਜਿਤ ਕਰਨ ਯੋਗ ਬਣਾਉਣ ਤੇ ਧਿਆਨ ਦਿੱਤਾ। ਮੁੱਖ ਬਦਲਾਅ ਵਧੀਆ object-oriented programming ਸੀ: ਬਿਹਤਰ ਕਲਾਸ ਹੈਂਡਲਿੰਗ, ਵਿਜ਼ੀਬਿਲਿਟੀ ਨਿਯਮਾਂ ਨੂੰ ਸੁਧਾਰਿਆ ਗਿਆ, ਅਤੇ ਨਵੇਂ ਪੈਟਰਨ ਲਈ ਬੁਨਿਆਦ ਤਿਆਰ ਹੋਈ।
ਇਹ PHP ਨੂੰ ਅਕੈਡਮਿਕ ਬਣਾਉਣ ਲਈ ਨਹੀਂ ਸੀ—ਇਹ ਵੱਡੇ ਪ੍ਰੋਜੈਕਟਾਂ ਨੂੰ ਸੁਸਥਿਤ ਰੱਖਣ ਅਤੇ ਕੋਡ ਨੂੰ ਦੁਬਾਰਾ ਵਰਤਣ ਯੋਗ ਬਣਾਉਣ ਲਈ ਸੀ।
ਜਿਵੇਂ PHP ਫੈਲੀ, ਨਵਾਂ ਦਬਾਅ ਆਇਆ: ਲੋਕ ਉਮੀਦ ਕਰਨ ਲੱਗੇ ਕਿ ਪੁਰਾਣਾ ਕੋਡ ਚੱਲਦਾ ਰਹੇ। ਹੋਸਟਿੰਗ ਕੰਪਨੀਆਂ, CMS ਪਲੇਟਫਾਰਮ ਅਤੇ ਏਜੰਸੀਆਂ ਇਸ ਸਥਿਰਤਾ 'ਤੇ ਨਿਰਭਰ ਕੀਤਾ।
ਇਸ ਤੋਂ ਬਾਅਦ PHP ਦੀ ਵਿਕਾਸ ਯਾਤਰਾ ਸਿਰਫ਼ "ਫੀਚਰ ਜੋੜੋ" ਨਹੀਂ ਰਹੀ—ਇਹ ਹੋਇਆ "ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਜੁੜਣ ਨਾਲ ਨਾਲ ਇੰਟਰਨਲ ਤੌਰ 'ਤੇ ਵੀ ਬ੍ਰੇਕ ਨਾ ਹੋਵੇ"।
PHP ਨੇ ਇਸ ਲਈ ਜਿੱਤਿਆ ਨਹੀਂ ਕਿ ਇਹ ਕਾਗਜ਼ ਤੇ ਸਭ ਤੋਂ ਸੁਧਾਰਸ਼ੀਲ ਭਾਸ਼ਾ ਸੀ। ਇਸ ਨੇ ਜਿੱਤਿਆ ਕਿਉਂਕਿ ਇਹ ਉਪਯੋਗੀ ਵੈੱਬ ਪੰਨਿਆਂ ਬਣਾਉਣ ਨੂੰ ਤੁਰੰਤ ਮਹਿਸੂਸ ਕਰਵਾਉਂਦਾ ਸੀ।
ਸ਼ੁਰੂਆਤੀ ਵੈੱਬ ਡਿਵੈਲਪਰਾਂ—ਅਕਸਰ ਡਿਜ਼ਾਈਨਰ, ਸ਼ੌਕੀਨ ਲੋਕ ਜਾਂ ਛੋਟੇ ਕਾਰੋਬਾਰ—ਲਈ PHP ਨੇ time-to-first-working-thing ਘੱਟ ਕਰ ਦਿੱਤਾ।
PHP ਨਾਲ feedback loop ਲਗਭਗ ਬਿਨਾਂ ਰੁਕਾਵਟ ਦਾ ਸੀ: ਫਾਈਲ ਅਪਲੋਡ ਕਰੋ, ਪੇਜ ਰੀਫਰੇਸ਼ ਕਰੋ, ਨਤੀਜਾ ਵੇਖੋ। ਇਹ ਛੋਟੀ ਗੱਲ ਲਗਦੀ ਹੈ ਪਰ ਇਸਨੇ ਇੱਕ ਪੀੜ੍ਹੀ ਨੂੰ ਨਿਰਧਾਰਤ ਕੀਤਾ ਕਿ ਵੈੱਬ ਬਣਾਉਣਾ ਕਿਵੇਂ ਹੁੰਦਾ ਹੈ।
ਲੋਕ ਇੱਕ ਸਿੰਘ ਨਗਲ ਡਾਇਨੈ민ਿਕ ਪੇਜ (contact form, guestbook, counter) ਤੋਂ ਸ਼ੁਰੂ ਕਰਕੇ ਆਹਿਸਤ-ਆਹਿਸਤ ਵੱਡਾ ਕਰ ਸਕਦੇ ਸਨ।
ਸ਼ੁਰੂਆਤੀ ਵੈੱਬ ਪ੍ਰੋਜੈਕਟਾਂ ਦੇ ਕੋਲ ਵੱਡੇ ਇੰਜੀਨੀਅਰਿੰਗ ਵਿਭਾਗ ਨਹੀਂ ਹੁੰਦੇ। ਇਕ-ਦੋ ਡਿਵੈਲਪਰ ਹੁੰਦੇ ਸਨ ਅਤੇ ਬਹੁਤ ਸਾਰੀਆਂ ਤਤ्कालਿਕ ਲੋੜਾਂ।
PHP ਉਸ ਹਕੀਕਤ ਵਿਚ ਫਿੱਟ ਹੁੰਦਾ ਸੀ: ਇਹ ਡਿਪਲੋਇਮੈਂਟ ਦੇ ਆਚਰ-ਵਿਚਾਰ ਨੂੰ ਘਟਾ ਦਿੰਦਾ ਅਤੇ ਛੋਟੀਆਂ-ਛੋਟੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਸਿਪ ਕਰਨ ਯੋਗ ਬਣਾਉਂਦਾ।
PHP ਨੂੰ ਸਸਤੇ shared hosting ਨਾਲ ਮਿਲਣ ਵਾਲੀ ਲਹਿਰ 'ਤੇ ਚੜ੍ਹਨ ਦਾ ਫ਼ਾਇਦਾ ਹੋਇਆ। ਕਈ ਪ੍ਰੋਵਾਇਡਰ ਇਸ ਨੂੰ ਪਹਿਲਾਂ ਤੋਂ ਇੰਸਟਾਲ ਕਰਕੇ ਰੱਖਦੇ ਸਨ—ਤਾਂ ਜੋ ਤੁਹਾਨੂੰ ਵਿਸ਼ੇਸ਼ ਢਾਂਚਾ ਜਾਂ ਮਹਿੰਗੇ ਸਰਵਰ ਦੀ ਲੋੜ ਨਾ ਹੋਵੇ।
ਡਿਪਲੋਇਮੈਂਟ ਅਕਸਰ ਸਿਰਫ਼ “ਫਾਈਲਾਂ ਕਾਪੀ ਕਰੋ” ਸੀ, ਜੋ ਲੋਕ ਪਹਿਲਾਂ ਹੀ HTML ਪਬਲਿਸ਼ ਕਰਨ ਦਾ ਤਰੀਕਾ ਵਰਤ ਰਹੇ ਸਨ।
ਜਿਵੇਂ PHP ਦੀ ਅਪਣਾਈ ਵਧੀ, ਇਸਨੇ ਆਪਣੇ ਆਪ ਨੂੰ ਮਜ਼ਬੂਤ ਬਣਾਇਆ: ਟਿਊਟੋਰਿਯਲ, ਕੋਡ ਸਨਿੱਪੇਟਸ, ਫੋਰਮ ਅਤੇ copy-paste ਉਦਾਹਰਣ ਹਰ ਥਾਂ ਮਿਲਨ ਲੱਗੇ।
ਇਹ ਕਮਿਊਨਿਟੀ ਕਨਿਸ਼ਨਸ PHP ਨੂੰ ਪਹੁੰਚਯੋਗ ਬਣਾਉਂਦਾ ਰਿਹਾ—ਭਾਵੇਂ ਅਸਲ ਵੈੱਬ ਸਮੱਸਿਆਵਾਂ ਕਾਫ਼ੀ ਔਖੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ।
PHP ਸਿਰਫ਼ ਅਸਾਨ ਹੋਣ ਕਾਰਨ ਨਹੀਂ ਜਿੱਤਿਆ—ਇਹ ਆਪਣਾ “ਡિફਾਲਟ ਘਰ” ਮਿਲਣ ਕਾਰਨ ਵੀ ਜਿੱਤਿਆ।
ਉਹ ਘਰ ਸੀ LAMP ਸਟੈਕ: Linux + Apache + MySQL + PHP। ਸਾਲਾਂ ਤਕ, ਇਹ ਕੰਬੋ ਡਾਇਨੈ민ਿਕ ਵੈੱਬਸਾਈਟਾਂ ਲਈ ਮਿਆਰੀ ਨुसਖਾ ਸੀ, ਖ਼ਾਸ ਕਰਕੇ ਛੋਟੇ ਕਾਰੋਬਾਰਾਂ ਅਤੇ ਨਿੱਜੀ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ।
Linux ਅਤੇ Apache ਆਮ ਅਤੇ ਸਸਤੇ ਸਨ। PHP ਨੇ Apache ਦੇ ਰਿਕਵੈਸਟ/ਰਿਸਪਾਂਸ ਮਾਡਲ ਵਿੱਚ ਬਖ਼ੂਬੀ ਫਿੱਟ ਕੀਤਾ: ਜਦੋਂ ਕਿਸੇ URL 'ਤੇ ਕਲਿੱਕ ਹੁੰਦਾ, Apache ਰਿਕਵੈਸਟ PHP ਨੂੰ ਦਿੰਦਾ ਅਤੇ PHP HTML ਤਿਆਰ ਕਰਕੇ ਵਾਪਸ ਕਰਦਾ।
ਇੱਥੇ ਕੋਈ ਵੱਖਰਾ ਐਪਲੀਕੇਸ਼ਨ ਸਰਵਰ ਨਹੀਂ ਸੀ, ਜਿਸ ਨਾਲ ਡਿਪਲੋਇਮੈਂਟ ਸਧਾਰਨ ਅਤੇ ਸਸਤਾ ਰਹਿੰਦਾ।
MySQL ਨੇ ਤਸਵੀਰ ਨੂੰ ਪੂਰਾ ਕੀਤਾ। PHP ਦੇ ਬਿਲਟ-ਇਨ ਡੇਟਾਬੇਸ ਐਕਸਟੈਂਸ਼ਨਾਂ ਨਾਲ MySQL ਨਾਲ ਕੁਨੈਕਟ ਕਰਨਾ, ਕੁਏਰੀ ਚਲਾਉਣੀ ਅਤੇ ਨਤੀਜੇ ਪੰਨੇ 'ਤੇ ਰੈਨਡਰ ਕਰਨਾ ਸਿੱਧਾ ਹੋ ਗਿਆ।
ਇਸ ਤਾਕਤਵਰ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਦਾ ਮਤਲਬ ਇਹ ਸੀ ਕਿ ਬਹੁਤ ਸਾਰੀਆਂ ਡੇਟਾਬੇਸ-ਅਧਾਰਤ ਸਾਈਟਾਂ ਉਹੀ ਸਾਦਾ ਟੂਲਕਿਟ ਵਰਤ ਕੇ ਬਣ ਸਕਦੀਆਂ ਸਨ।
ਇੱਕ ਵੱਡਾ ਤੇਜ਼ੀ ਲਿਆਉਣ ਵਾਲਾ ਕਾਰਣ ਸੀ shared hosting। ਕਈ ਹੋਸਟ ਅਕਾਉਂਟ ਦਿੰਦੇ ਜਿੱਥੇ PHP ਅਤੇ MySQL ਪਹਿਲਾਂ ਤੋਂ ਕਨਫਿਗ ਕੀਤੇ ਹੋਏ ਹੁੰਦੇ—ਕੋਈ ਸਿਸਟਮ ਐਡਮਿਨਿਸਟ੍ਰੇਸ਼ਨ ਦੀ ਲੋੜ ਨਹੀਂ।
cPanel ਵਰਗੇ ਕੰਟਰੋਲ ਪੈਨਲ ਨਾਲ ਵਰਤੋਂਕਾਰ MySQL ਡੇਟਾਬੇਸ ਬਣਾ ਸਕਦੇ, phpMyAdmin ਵਿੱਚ ਟੇਬਲ ਮੈਨੇਜ ਕਰ ਸਕਦੇ, FTP ਰਾਹੀਂ PHP ਫਾਈਲਾਂ ਅਪਲੋਡ ਕਰਕੇ ਤੁਰੰਤ ਲਾਈਵ ਹੋ ਸਕਦੇ।
ਫਿਰ ਆਏ one-click installers (ਅਕਸਰ WordPress, ਫੋਰਮ ਅਤੇ ਸ਼ਾਪਿੰਗ ਕਾਰਟ ਲਈ)। ਇਹ ਇੰਸਟਾਲਰ ਇਹ ਧਾਰਨਾ ਸਧਾਰਨ ਬਣਾਉਂਦੇ ਕਿ “ਇੱਕ ਵੈੱਬਸਾਈਟ ਇੱਕ PHP ਐਪ + MySQL ਡੇਟਾਬੇਸ ਹੈ”, ਜਿਸ ਨਾਲ ਮਿਲੀਅਨਜ਼ ਸਾਈਟ ਮਾਲਕਾਂ ਲਈ PHP ਰਾਸ਼ਤਾ-ਐਨ-ਘੱਟ ਰਕਾਵਟ ਬਣ ਗਿਆ।
ਇਸ ਸਟੈਕ ਨੇ ਇੱਕ ਪ੍ਰਯੋਗਿਕ ਕਾਰਜ-ਪ੍ਰਵਾਹ ਨੂੰ ਉਤਸ਼ਾਹਿਤ ਕੀਤਾ: .php ਫਾਈਲ ਸੋਧੋ, ਬਰਾਊਜ਼ਰ ਰੀਫਰੇਸ਼ ਕਰੋ, SQL ਸੋਧੋ, ਦੁਹਰਾਓ।
ਇਸ ਨਾਲ ਜਾਣੀ-ਪਹਚਾਣੀ ਪੈਟਰਨ ਬਣੇ—ਟੈਮਪਲੇਟਸ ਅਤੇ ਇੰਕਲੂਡਸ, ਫਾਰਮ ਹੈਂਡਲਿੰਗ, ਸੈਸ਼ਨ ਅਤੇ CRUD ਪੰਨੇ—ਜਿਹੜੇ ਇੱਕ ਸਾਂਝਾ ਮਾਨਸਿਕ ਨਕਸ਼ਾ ਪੈਦਾ ਕਰਦੇ ਹਨ ਜੋ LAMP ਦੇ ਚਰਮ 'ਤੇ ਵੀ ਕਾਫੀ ਸਮੇਂ ਲਈ ਟਿਕਿਆ ਰਹਿਆ।
PHP ਸਿਰਫ਼ ਇਸ ਲਈ ਹਰ ਜਗ੍ਹਾ ਨਹੀਂ ਵਿਆਪਕ ਹੋਇਆ ਕਿ ਇਸ ਦੀ syntax ਚੰਗੀ ਸੀ। ਇਹ ਇਸ ਲਈ ਵੀ default ਫੈਸਲਾ ਬਣਿਆ ਕਿ ਪੂਰੇ, ਇੰਸਟਾਲ ਕਰਨ ਯੋਗ ਉਤਪਾਦ ਇਸਦੇ ਆਲੇ-ਦੁਆਲੇ ਬਣੇ—ਉਹ ਟੂਲ ਜੋ ਘੱਟ ਸੈਟਅਪ ਨਾਲ ਅਸਲੀ ਕਾਰੋਬਾਰੀ ਮੁੱਦੇ ਹੱਲ ਕਰਦੇ ਸਨ।
Content management systems ਨੇ PHP ਨੂੰ ਇਕ-ਕਲਿੱਕ ਫੈਸਲਾ ਬਣਾਇਆ। WordPress, Drupal, Joomla ਵਰਗੇ ਪਲੇਟਫਾਰਮ admin panels, logins, permissions, themes, plugins ਵਰਗੀਆਂ ਮਸ਼ਕਲਾਂ ਨੂੰ ਬਕਸੇ ਬਿਨਾਂ ਹੱਲ ਕਰਕੇ ਇੱਕ ਸਾਈਟ ਮਾਲਕ ਨੂੰ ਕੋਡ ਲਿਖਣ ਤੋਂ ਬਿਨਾਂ ਪੇਜ ਪਬਲਿਸ਼ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾ ਦਿੰਦੇ।
ਇਹ ਅਹਿਮ ਹੈ ਕਿਉਂਕਿ ਹਰ CMS ਆਪਣੀ ਗਰੈਵੀਟੀ ਬਣਾਉਂਦਾ: ਡਿਜ਼ਾਈਨਰ ਥੀਮ ਬਣਾਉਣਾ ਸਿੱਖਦੇ, ਏਜੰਸੀਆਂ ਰੀਪੀਟਏਬਲ ਸੇਵਾ ਬਣਾਂਦੀਆਂ, ਅਤੇ ਪਲਗਇਨ ਮਾਰਕੀਟਪਲੇਸ ਵਧੇ।
ਜਦੋਂ ਇੱਕ ਕਲਾਇੰਟ ਦੀ ਸਾਈਟ ਉਸ ਇਕੋਸਿਸਟਮ ਤੇ ਨਿਰਭਰ ਹੋ ਜਾਂਦੀ, ਤਾਂ PHP ਬਾਰ-ਬਾਰ "ਚੁਣ ਲਈ" ਚੁਣਿਆ ਜਾਂਦਾ—ਕਈ ਵਾਰੀ ਕਲਾਇੰਟ ਨੂੰ ਪਤਾ ਵੀ ਨਹੀਂ ਹੁੰਦਾ।
Online stores ਅਤੇ community sites ਸ਼ੁਰੂਆਤੀ ਵੈੱਬ ਦੀਆਂ ਜਰੂਰੀਆਂ ਸਨ, ਅਤੇ PHP shared-hosting ਹਕੀਕਤ ਨਾਲ ਬੜੀਆਂ ਤਰ੍ਹਾਂ ਫਿੱਟ ਹੁੰਦਾ ਸੀ।
Magento (ਅਤੇ ਬਾਅਦ ਵਿੱਚ WordPress 'ਤੇ WooCommerce), ਫੋਰਮ ਐਪਸ ਜਿਵੇਂ phpBB ਨੇ ਲੋਕਾਂ ਨੂੰ ਕੈਟਾਲੋਗ, ਕਾਰਟ, ਅਕਾਊਂਟ ਅਤੇ moderation ਲਈ ਤਿਆਰ ਹੱਲ ਦਿੱਤੇ।
ਇਹ ਪ੍ਰੋਜੈਕਟ ਵੀ ਇੱਕ ਵਰਕਫਲੋ ਨੂੰ ਸਧਾਰਨ ਬਣਾਉਂਦੇ—ਇਕ ਐਪ ਇੰਸਟਾਲ ਕਰੋ, ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਕਨਫਿਗਰ ਕਰੋ, ਅਤੇ ਮੌਡੀਊਲ ਨਾਲ ਵਧਾਓ—ਜੋ PHP ਦੇ ਫੈਲਾਅ ਲਈ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਕਾਰਕ ਸੀ।
ਹਰ PHP ਜਨਤਕ-ਚਹਿਰਾ ਨਹੀਂ ਹੁੰਦਾ। ਕਈ ਟੀਮਾਂ ਇਸਨੂੰ ਅੰਦਰੂਨੀ ਡੈਸ਼ਬੋਰਡਾਂ, ਐਡਮਿਨ ਟੂਲਸ, ਅਤੇ ਸਧਾਰਨ APIs ਲਈ ਵਰਤਦੀਆਂ ਹਨ ਜੋ ਭੁਗਤਾਨ, ਇਨਵੈਂਟਰੀ, CRM ਜਾਂ analytics ਨਾਲ ਜੁੜਦੇ ਹਨ।
ਇਹ ਸਿਸਟਮ publicly detectable ਨਹੀਂ ਹੁੰਦੇ, ਪਰ ਦਿਨ-ਚੜ੍ਹਦੇ ਵਰਤੋਂ ਵਿੱਚ PHP ਨੂੰ ਰੱਖਦੇ ਹਨ।
ਜਦੋਂ ਵੈੱਬ ਦਾ ਵੱਡਾ ਹਿੱਸਾ ਕੁਝ ਵੱਡੀਆਂ ਉਤਪਾਦਾਂ (ਖ਼ਾਸ ਕਰਕੇ WordPress) 'ਤੇ ਚਲਦਾ ਹੈ, ਤਾਂ ਇਸਦੇ ਤਹਿਤ ਦੀ ਭਾਸ਼ਾ ਵੀ ਉਹੀ ਰੰਗ ਧਾਰ ਲੈਂਦੀ ਹੈ। PHP ਦੀ ਪਹੁੰਚ ਬਹੁਤ ਹੱਦ ਤਕ ਉਸ ਏਕੋਸਿਸਟਮ ਦੀ ਪਹੁੰਚ ਹੈ—ਸਿਰਫ਼ ਭਾਸ਼ਾ ਦੀ ਖ਼ੁਦ ਸ਼ਕਤੀ ਨਹੀਂ।
PHP ਦੀ ਸਫਲਤਾ ਹਮੇਸ਼ਾ ਪ੍ਰਯੋਗਿਕਤਾ ਨਾਲ ਜੁੜੀ ਰਹੀ—ਅਤੇ ਪ੍ਰਯੋਗਿਕਤਾ ਅਕਸਰ ਸੁਤੰਤਰ ਖਰੋਟੀਆਂ ਛੱਡ ਦਿੰਦੀ ਹੈ।
ਕਈ ਆਲੋਚਨਾਵਾਂ ਵਾਸਤਵਿਕ ਇਤਿਹਾਸ ਵਿੱਚ ਬੇੜੀਆਂ ਹਨ, ਪਰ ਉਹਨਾਂ ਨੂੰ ਵਰਤਮਾਨ ਵਰਤੋਂ (ਜਾਂ ਅੱਜ ਦੀਆਂ ਸ਼੍ਰੇਣੀਆਂ) ਨਾਲ ਗਲਤ ਜਾਣਾ ਵੀ ਠੀਕ ਨਹੀਂ।
ਇੱਕ ਆਮ ਸ਼ਿਕਾਇਤ ਅਸਮਰੂਪਤਾ ਹੈ: ਫੰਕਸ਼ਨ ਨਾਮ ਵੱਖ-ਵੱਖ ਪੈਟਰਨ ਨੂੰ ਫੋਲੋ ਕਰਨਗੇ, ਪੈਰਾਮੀਟਰ ਵੱਖਰੇ ਕ੍ਰਮ ਵਿੱਚ ਹੋ ਸਕਦੇ ਹਨ, ਅਤੇ ਨਵੇਂ APIs ਪੁਰਾਣੇ ਨਾਲ ਨਾਲ ਰਹਿ ਜਾਂਦੇ ਹਨ।
ਇਹ ਸੱਚ ਹੈ—PHP ਤੇਜ਼ੀ ਨਾਲ ਵਧਿਆ, ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਜੋੜੀਆਂ ਗਈਆਂ, ਅਤੇ ਕਈ ਵਾਰੀ ਪੁਰਾਣੀਆਂ ਇੰਟਰਫੇਸਾਂ ਨੂੰ ਖ਼ਤਮ ਨਾ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਗਈ।
PHP ਵੱਖ-ਵੱਖ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਸ਼ੈਲੀਆਂ ਨੂੰ ਸਹਾਇਤਾ ਦਿੰਦੀ ਹੈ। ਤੁਸੀਂ ਸਧਾਰਨ “ਉਪਭੋਗੀ ਲਈ ਕਾਰਜ” ਸਕ੍ਰਿਪਟ ਲਿਖ ਸਕਦੇ ਹੋ, ਜਾਂ ਵੱਧ-ਠੀਕ object-oriented ਕੋਡ।
ਆਲੋਚਕ ਇਸਨੂੰ "ਮਿਕਸਡ ਪੈਰੈਡਾਈਮਸ" ਕਹਿੰਦੇ ਹਨ; ਸਹਿਯੋਗੀ ਇਸਨੂੰ ਲਚਕਦਾਰਤਾ ਕਹਿੰਦੇ ਹਨ। ਨੁਕਸਾਨ ਇਹ ਹੈ ਕਿ ਟੀਮਾਂ ਅਕਸਰ ਬਿਨਾਂ ਮਿਆਰ ਦੇ ਅਸਮਾਨ ਗੁਣਵੱਤਾ ਵਾਲੇ ਕੋਡ ਬਣਾ ਬੈਠਦੀਆਂ ਹਨ।
“PHP ਅਸੁਰੱਖਿਤ ਹੈ” ਇੱਕ ਸਰਲਿਕਰਨ ਹੈ। ਜਿਆਦਾਤਰ PHP ਸੁਰੱਖਿਆ ਘਟਨਾਵਾਂ ਐਪਲਿਕੇਸ਼ਨ-ਸਤਹ ਦੀਆਂ ਭੁੱਲਾਂ ਤੋਂ ਹੁੰਦੀਆਂ ਹਨ: ਬਿਨਾਂ ਭਰੋਸੇ ਇਨਪੁੱਟ, SQL ਨਾ-ਸੁਰੱਖਿਅਤ ਤਰੀਕੇ ਨਾਲ ਬਣਾਉਣਾ, ਗਲਤ ਫਾਈਲ ਅਪਲੋਡ ਸੰਰਚਨਾ, ਜਾਂ ਪਹੁੰਚ-ਚੈੱਕ ਭੁੱਲਣਾ।
PHP ਦੀਆਂ ਇਤਿਹਾਸਕ ਡਿਫੌਲਟ ਸੇਟਿੰਗਾਂ ਹਰ ਨਵੇਂ ਆਦਮੀ ਨੂੰ ਸੁਰੱਖਿਅਤ ਪੈਟਰਨਾਂ ਵੱਲ ਨਹੀਂ ਦਿਖਾਉਂਦੀਆਂ, ਅਤੇ ਇਸਦੀ ਆਸਾਨੀ ਨੇ ਕਈ ਬਿਗਿਨਰ ਪਬਲਿਕ-ਫੇਸਿੰਗ ਕੋਡ ਡਿਪਲੋਇ ਕਰ ਦਿੱਤਾ।
ਸਹੀ ਨਜ਼ਰੀਆ ਇਹ ਹੈ: PHP ਸਾਈਟਾਂ ਨੂੰ ਬਣਾਉਣਾ ਆਸਾਨ ਹੈ, ਅਤੇ ਵੈੱਬ ਐਪਲਿਕੇਸ਼ਨ ਬੇਹਤਰ ਤਰੀਕੇ ਨਾਲ ਗਲਤ ਹੋ ਸਕਦੇ ਹਨ ਜੇ ਸਧਾਰਨ ਸੁਰੱਖਿਆ-ਹਾਇਜੀਨ ਨਾ ਅਪਣਾਈ ਜਾਵੇ।
PHP ਨੇ ਇੱਕ ਭਾਰੀ ਜ਼ਿੰਮੇਵਾਰੀ ਗ੍ਰਹਿਣ ਕੀਤੀ: ਵੈੱਬ ਨੂੰ ਟੁੱਟਣ ਤੋਂ ਬਚਾਓ।
ਇਹ ਬੈਕਵਰਡ ਕੰਪੈਟਿਬਿਲਿਟੀ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਐਪ ਚਲਾਉਣ ਲਈ ਵਧੀਆ ਹੈ, ਪਰ ਇਸਦਾ ਨਤੀਜਾ ਇਹ ਵੀ ਹੈ ਕਿ ਲੈਗੇਸੀ ਕੋਡ ਬਹੁਤ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਪੈਰੋਕਾਰ ਬਣੇ ਰਹਿੰਦੇ ਹਨ—ਕਈ ਵਾਰੀ ਆਪਣੇ “best by” ਮਿਤੀ ਤੋਂ ਕਾਫ਼ੀ ਦੇਰ ਬਾਅਦ ਵੀ। ਕੰਪਨੀਆਂ ਕਈ ਵਾਰੀ ਪੁਰਾਣੇ ਪੈਟਰਨਾਂ ਦੀ ਦੇਖਭਾਲ ਕਰਨ ਵਿੱਚ ਨਵੀਨਤਾ ਅਪਣਾਉਣ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਖ਼ਰਚ ਕਰਦੀਆਂ ਹਨ।
ਨਿਆਇਕ ਆਲੋਚਨਾ: ਅਸਮਰੂਪਤਾ, ਲੈਗੇਸੀ APIs ਅਤੇ ਅਸਮਾਨ ਕੋਡਬੇਸ ਸੱਚੇ ਹਨ।
ਪੁਰਾਣੀ ਆਲੋਚਨਾ: ਮੰਨ ਲੋ ਕਿ ਆਧੁਨਿਕ PHP ਪਰਿਯੋਜਨਾਵਾਂ ਜ਼ਰੂਰੀ ਤੌਰ 'ਤੇ 2000s ਦੇ PHP ਵਰਗੀਆਂ ਹੀ ਦਿੱਖ ਰਖਦੀਆਂ ਹਨ, ਜਾਂ ਭਾਸ਼ਾ ਖ਼ੁਦ ਮੁੱਖ ਸੁਰੱਖਿਆ ਕਮਜ਼ੋਰੀ ਹੈ।
ਅਮਲ ਵਿੱਚ, ਅੰਤਰ ਅਕਸਰ ਟੀਮ ਦੀਆਂ ਅਮਲਾਂ ਹੁੰਦੀ ਹੈ, ਨਾ ਕਿ ਸੰਦ।
PHP ਦੀ ਖਿਆਤੀ ਅਕਸਰ ਉਹ ਕੋਡ ਨਾਲ ਜੁੜੀ ਹੁੰਦੀ ਹੈ ਜੋ ਸਾਲਾਂ ਪਹਿਲਾਂ ਲਿਖਿਆ ਗਿਆ: HTML ਅਤੇ ਲੌਜਿਕ ਇੱਕ ਫਾਈਲ ਵਿੱਚ, ਅਸਮਰੂਪ ਸ਼ੈਲੀਆਂ, ਅਤੇ “ਮੇਰੇ ਸਰਵਰ ਤੇ ਚੱਲਦਾ ਹੈ” ਡਿਪਲੋਇਮੈਂਟ ਆਦਤਾਂ।
PHP 7 ਅਤੇ 8+ ਨੇ ਨਾ ਕੇਵਲ ਫੀਚਰ ਜੋੜੇ—ਉਨ੍ਹਾਂ ਨੇ ਏਕੋਸਿਸਟਮ ਨੂੰ ਸਾਫ਼, ਤੇਜ਼ ਅਤੇ ਜ਼ਿਆਦਾ ਰਖ-ਰਖਾਅ ਯੋਗਤਾ ਵੱਲ ਧੱਕਿਆ।
PHP 7 ਨੇ ਕੁਝ ਮੁੱਖ ਇੰਟਰਨਲਜ਼ ਨੂੰ ਦੁਬਾਰਾ ਡਿਜ਼ਾਈਨ ਕਰਕੇ ਪ੍ਰਦਰਸ਼ਨ ਵਿੱਚ ਵੱਡੇ ਸੁਧਾਰ ਲਿਆਏ।
ਸਧਾਰਨ ਸ਼ਬਦਾਂ ਵਿੱਚ: ਇਕੋ ਐਪ ਓਸੇ ਹਾਰਡਵੇਅਰ ਤੇ ਹੋਰ ਬੇਹਤਰ ਰਿਕਵੈਸਟ ਹੈਂਡਲ ਕਰ ਸਕਦੀ ਸੀ, ਜਾਂ ਇਕੋ ਟ੍ਰੈਫਿਕ 'ਤੇ ਖ਼ਰਚ ਘੱਟ ਹੋ ਸਕਦਾ ਸੀ।
ਇਹ shared hosting, ਭਾਰੇ WordPress ਸਾਈਟਾਂ, ਅਤੇ ਹਰ ਉਹ ਕਾਰੋਬਾਰ ਲਈ ਮਹੱਤਵਪੂਰਨ ਸੀ ਜੋ “ਪੇਜ ਲੋਡ ਟਾਈਮ” ਨੂੰ ਵਿਕਰੀ ਘਟਾਉਣ ਵਾਲਾ ਮਾਪਦੇ ਹਨ।
PHP 8 ਨੇ ਉਹ ਫੀਚਰ ਦਿੱਤੇ ਜੋ ਵੱਡੇ ਕੋਡਬੇਸਾਂ ਨੂੰ ਸੋਚਣ ਅਤੇ ਰੱਖਣ ਲਈ ਆਸਾਨ ਬਣਾਉਂਦੇ ਹਨ:
int|string)—ਇਸ ਨਾਲ ਅਨੁਮਾਨ ਘੱਟ ਹੁੰਦੇ ਹਨ ਅਤੇ ਟੂਲਿੰਗ ਸੁਧਰਦੀ ਹੈ।ਆਧੁਨਿਕ PHP ਪ੍ਰੋਜੈਕਟ ਆਮ ਤੌਰ 'ਤੇ Composer 'ਤੇ ਨਿਰਭਰ ਹੁੰਦੇ ਹਨ—ਮਿਆਰੀ dependency manager।
ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਹੱਥੋਂ-ਹੱਥ ਕਾਪੀ ਕਰਨ ਦੀ ਬਜਾਏ, ਟੀਮਾਂ dependencies ਨੂੰ ਇੱਕ ਫਾਇਲ ਵਿੱਚ ਘੋਸ਼ਿਤ ਕਰਦੀਆਂ ਹਨ, ਅਨੁਮਾਨਿਤ ਵਰਜਨ ਇੰਸਟਾਲ ਕਰਦਿਆਂ ਹਨ, ਅਤੇ autoloading ਵਰਤਦੀਆਂ ਹਨ। ਇਹ ਇੱਕ ਕਾਰਨ ਹੈ ਕਿ ਅਜੂਕੇ PHP ਬਹੁਤ "ਪੇਸ਼ੇਵਰ" ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ।
ਪੁਰਾਣਾ PHP ਅਕਸਰ ad-hoc ਸਕ੍ਰਿਪਟਾਂ ਦਾ ਮਤਲਬ ਹੁੰਦਾ ਸੀ; ਆਧੁਨਿਕ PHP ਅਕਸਰ ਸੰਸਕਰਿਤ dependencies, frameworks, typed ਕੋਡ, ਆਟੋਮੇਟਡ ਟੈਸਟਿੰਗ, ਅਤੇ ਸੱਚੇ ਟ੍ਰੈਫਿਕ ਹੇਠਾਂ ਰੱਖਣ ਜੋਗਾ ਪ੍ਰਦਰਸ਼ਨ ਹੁੰਦਾ ਹੈ।
PHP ਨੋਸਟਾਲਜੀਆ ਲਈ ਚੋਣ ਨਹੀਂ ਹੈ—ਇਹ ਇੱਕ ਪ੍ਰਯੋਗਿਕ ਸੰਦ ਹੈ ਜੋ ਅਜੇ ਵੀ ਬਹੁਤ سارے ਵੈੱਬ ਕੰਮਾਂ ਲਈ ਬਹੁਤ ਵੀ ਢੰਗ ਨਾਲ ਫਿੱਟ ਬੈਠਦਾ ਹੈ।
ਚੀਜ਼ ਇਹ ਹੈ ਕਿ ਤੁਸੀਂ ਇਸਨੂੰ ਆਪਣੀਆਂ ਸੀਮਾਵਾਂ ਦੇ ਨਾਲ ਮਿਲਾਉ, ਨਾ ਕਿ ਆਪਣੀ ਆਇਡੀਓਲੋਜੀ ਦੇ ਨਾਲ।
PHP ਚਮਕਦਾਰ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਬਣਾ ਰਹੇ ਹੋ ਜਾਂ ਚਲਾ ਰਹੇ ਹੋ:
ਜੇ ਤੁਹਾਡਾ ਪ੍ਰੋਜੈਕਟ “ਕਈ ਡਿਵੈਲਪਰ ਪਹਿਲਾਂ ਹੀ ਜਾਣਦੇ ਹਨ” ਅਤੇ ਹੋਸਟਿੰਗ ਹਰ ਥਾਂ ਹੈ, ਤਾਂ PHP friction ਘਟਾ ਸਕਦਾ ਹੈ।
ਹੋਰ ਸਟੈਕ ਦੇ ਸੋਚੋ ਜੇ ਤੁਹਾਨੂੰ:
ਨਵਾ ਪ੍ਰੋਡਕਟ ਬਣਾਉਂਦੇ ਸਮੇਂ ਵੀ ਇੱਕ ਹੋਰ ਸਟੈਕ ਚੁਣਨਾ ਮਾਣੇ ਰੱਖਦਾ ਹੈ ਜੇ ਤੁਸੀਂ ਆਧੁਨਿਕ ਆਰਕੀਟੈਕਚਰ ਦੇ ਲਈ ਸਪੱਸ਼ਟ defaults ਚਾਹੁੰਦੇ ਹੋ (typed APIs, ਸਰਵਿਸ ਅਲੱਗ ਕਰਨ ਵਾਲੇ ਨਿਰਧਾਰ)।
ਚੁਣਨ ਤੋਂ ਪਹਿਲਾਂ ਇਹਨਾਂ ਨੂੰ ਪੁੱਛੋ:
PHP ਦੀ ਸ਼ੁਰੂਆਤੀ ਕਹਾਣੀ ਵਿੱਚ ਇੱਕ ਸਿੱਖਿਆ ਅਜੇ ਵੀ ਸੱਚੀ ਹੈ: ਜਿੱਤਣ ਵਾਲੇ ਟੂਲ ਉਹ ਹਨ ਜੋ ਖਿਆਲ ਤੋਂ ਕੰਮ ਤੱਕ ਦਾ ਫਾਸਲਾ ਘਟਾਉਂਦੇ ਹਨ।
ਜੇ ਤੁਸੀਂ ਫੈਸਲਾ ਕਰ ਰਹੇ ਹੋ ਕਿ PHP ਵਿੱਚ ਨਿਵੇਸ਼ ਜਾਰੀ ਰੱਖਣਾ ਹੈ ਜਾਂ ਕਿਸੇ ਨਵੇਂ ਸਰਵਿਸ ਨੂੰ ਅਲੱਗ ਬਣਾਉਣਾ (ਜਿਵੇਂ React frontend ਨਾਲ Go API), ਤਾਂ ਇੱਕ ਤੇਜ਼ ਪ੍ਰੋਟੋਟਾਇਪ ਬਹੁਤ ਸਵਾਲਾਂ ਹਟਾ ਸਕਦਾ ਹੈ।
ਪਲੇਟਫਾਰਮਾਂ ਜਿਹੜੀਆਂ ਇਨ੍ਹਾਂ ਤਰੀਕਿਆਂ ਲਈ ਬਣੀਆਂ ਹਨ—ਜਿਵੇਂ Koder.ai—ਉਹ "ship-first" ਵਰਕਫਲੋ ਲਈ ਤਿਆਰ ਹਨ: ਤੁਸੀਂ chat ਵਿੱਚ ਇੱਕ ਐਪ ਦਾ ਵਰਣਨ ਕਰੋ, ਇੱਕ ਕੰਮ ਕਰਨ ਯੋਗ web ਜਾਂ backend ਪ੍ਰੋਜੇਕਟ (React + Go ਨਾਲ PostgreSQL) ਜਨਰੇਟ ਕਰੋ, ਅਤੇ features ਜਿਵੇਂ planning mode, snapshots, ਅਤੇ rollback ਨਾਲ ਤੇਜ਼ੀ ਨਾਲ ਦੁਹਰਾਓ—ਫਿਰ ਜਦੋਂ ਤਿਆਰ ਹੋਵੋ ਤਾਂ ਸੋਰਸ ਕੋਡ ਐਕਸਪੋਰਟ ਕਰੋ।
ਵਧੇਰੇ ਪ੍ਰਯੋਗਿਕ ਗਾਈਡਾਂ ਲਈ, ਬਲੌਗ ਵੇਖੋ। ਜੇ ਤੁਸੀਂ ਡਿਪਲੋਇਮੈਂਟ ਜਾਂ ਸਰਵਿਸ ਵਿਕਲਪਾਂ ਦੀ ਤੁਲਨਾ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਕੀਮਤ (pricing) ਆਪਸ਼ਨਾਂ ਨੂੰ ਫਰਮ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੀ ਹੈ।
Rasmus Lerdorf ਨੇ ਆਪਣੀ ਨਿੱਜੀ ਸਾਈਟ ਸੰਭਾਲਣ ਲਈ ਛੋਟੀ C-ਅਧਾਰਤ ਯੂਟਿਲਿਟੀਆਂ ਬਣਾਈਆਂ—ਵਿਜ਼ਟਰ ਟ੍ਰੈਕ ਕਰਨਾ, ਪੰਨੇ ਦੇ ਸੰਰਚਨਾਵਾਂ ਦੀ ਪੁਨਰਵਰਤੋਂ ਅਤੇ ਸਾਦਾ ਡਾਇਨੈ민ਿਕ ਆਉਟਪੁੱਟ ਸੰਭਾਲਣਾ।
ਕਿਉਂਕਿ ਮਕਸਦ ਰੋਜ਼ਾਨਾ ਦੇ ਬੋਰਤਨਾਲੇ ਕੰਮਾਂ ਨੂੰ ਘਟਾਉਣਾ ਸੀ (ਨ ਕਿ “ਪੂਰੇ” ਭਾਸ਼ਾ ਡਿਜ਼ਾਈਨ ਕਰਨਾ), PHP ਨੇ ਪ੍ਰਯੋਗਿਕਤਾ-ਪਹਿਲਾਂ ਰਵਿੱਅਆ ਰੱਖਿਆ: ਤੇਜ਼ ਡਿਪਲੋਇ, HTML ਵਿੱਚ ਆਸਾਨੀਂ ਪੇਸ਼ਕੀ, ਅਤੇ ਵੈੱਬ-ਮੁੱਖੀ ਮਦਦਗਾਰ ਫੰਕਸ਼ਨ।
1990ਦੇ ਦਰਮਿਆਨ, ਜ਼ਿਆਦਾਤਰ ਪੰਨੇ static HTML ਸਨ। ਕਿਸੇ ਵੀ ਡਾਇਨੈ민ਿਕ ਗੁਣ ਲਈ—ਜਿਵੇਂ ਫਾਰਮ, ਕਾਊਂਟਰ, ਜਾਂ ਹਰ ਯੂਜ਼ਰ ਲਈ ਵਿਲੱਖਣ ਸਮੱਗਰੀ—ਲੋਕ ਆਮ ਤੌਰ 'ਤੇ CGI ਸਕ੍ਰਿਪਟ (ਅਕਸਰ Perl ਵਿੱਚ) ਵਰਤਦੇ ਸਨ।
ਇਹ ਕੰਮ ਕਰਦਾ ਸੀ, ਪਰ ਰੋਜ਼ਾਨਾ ਅਪਡੇਟ ਲਈ ਔਖਾ ਹੋ ਜਾਂਦਾ ਸੀ ਕਿਉਂਕਿ ਤੁਸੀਂ ਅਕਸਰ ਉਹਨੂੰ ਇੱਕ ਵੱਖਰਾ ਪ੍ਰੋਗਰਾਮ ਬਣਾਉਣਾ ਪੈਂਦਾ ਜੋ HTML ਪ੍ਰਿੰਟ ਕਰਦਾ ਸੀ, ਨਾ ਕਿ ਇੱਕ HTML ਪੰਨਾ ਵਿੱਚ ਥੋੜ੍ਹ੍ਹੀ ਲੌजिक ਜੋੜਨੀ।
CGI ਪ੍ਰੋਗਰਾਮ ਅਕਸਰ ਹਰ ਰਿਕਵੈਸਟ ਲਈ ਅਲੱਗ ਪ੍ਰੋਸੈਸ ਵਜੋਂ ਚਲਦੇ ਸਨ, ਅਤੇ ਇਸ ਲਈ ਵੱਧ ਸੈਟਅਪ ਦੀ ਲੋੜ ਹੁੰਦੀ ਸੀ (ਪਰਮੀਸ਼ਨ, ਸਰਵਰ ਕਨਫਿਗ, ਆਦਿ).
PHP ਨੇ ਡਾਇਨੈ민ਿਕ ਆਉਟਪੁੱਟ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਮਹਿਸੂਸ ਕਰਵਾਇਆ ਜਿਸ ਨਾਲ ਤੁਸੀਂ “ਵੈੱਬ ਪੰਨਾ ਸੰਪਾਦਿਤ” ਕਰ ਰਹੇ ਹੋ: HTML ਲਿਖੋ, ਛੋਟੇ ਸਰਵਰ-ਸਾਈਡ ਟੁਕੜੇ ਸ਼ਾਮਿਲ ਕਰੋ, ਅਪਲੋਡ ਕਰੋ, ਰੀਫਰੇਸ਼ ਕਰੋ।
PHP/FI ਦਾ ਪੂਰਾ ਨਾਮ “Personal Home Page / Forms Interpreter” ਸੀ। ਇਹ ਸ਼ੁਰੂਆਤੀ ਜਨਤਕ ਵਰਜਨ ਸੀ ਜੋ ਡਾਇਨੈ민ਿਕ ਪੰਨੇ ਬਣਾਉਣ ਅਤੇ ਫਾਰਮ ਪ੍ਰੋਸੈਸ ਕਰਨ ‘ਤੇ ਕੇਂਦਰਤ ਸੀ।
ਇਸ ਦੀ ਸਭ ਤੋਂ ਵੱਡੀ ਖ਼ਾਸੀਅਤ ਸੀ ਸਰਵਰ-ਸਾਈਡ ਕੋਡ ਨੂੰ ਸਿੱਧਾ ਪੰਨਿਆਂ ਵਿੱਚ ਏम्बੈੱਡ ਕਰਨ ਦੀ ਯੋਗਤਾ ਅਤੇ ਆਮ ਵੈੱਬ ਕੰਮਾਂ (ਖਾਸਕਰ ਫਾਰਮ ਅਤੇ ਬੁਨਿਆਦੀ ਡੈਟਾਬੇਸ ਸਹਾਇਤਾ) ਲਈ ਬਿਲਟ-ਇਨ ਸਹੂਲਤਾਂ।
ਇਸ ਨੇ ਹਾਦਰ/ਡਿਜ਼ਾਈਨਰ ਲਈ ਰੁਕਾਵਟ ਘਟਾ ਦਿੱਤੀ: HTML ਨੂੰ ਮੁੱਖ ਦਸਤਾਵੇਜ਼ ਰੱਖੋ ਅਤੇ ਛੋਟੇ ਡਾਇਨੈ민ਿਕ ਹਿੱਸੇ ਜੋੜੋ (ਜਿਵੇਂ ਨਾਮ ਔਪਟਪੁੱਟ ਕਰਨਾ ਜਾਂ ਨਤੀਜੇ ਵਿੱਚ ਲੂਪ ਕਰਨਾ)।
ਇਹ ਪਹੁੰਚ ਉਹਨਾਂ ਲਈ ਕੁਦਰਤੀ ਸੀ ਜੋ ਸਾਂਝੇ ਹੋਸਟਿੰਗ 'ਤੇ ਕੰਮ ਕਰਦੇ ਸਨ—ਛੋਟੇ-ਛੋਟੇ ਤਬਦੀਲੀਆਂ ਨਾਲ ਅਹਿਸਾਸਕ ਤੌਰ 'ਤੇ ਤਿਆਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਸੀ, ਬਿਨਾਂ ਕਿਸੇ ਵੱਖਰੇ ਟੈਮਪਲੇਟਿੰਗ ਸਿਸਟਮ ਨੂੰ ਅਪਣਾਏ।
ਜਿਵੇਂ ਹੀ PHP ਜਨਤਕ ਹੋਇਆ, ਹੋਰ ਡਿਵੈਲਪਰਾਂ ਨੇ ਫਿਕਸ, ਛੋਟੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਂ ਅਤੇ ਸੁਝਾਅ ਭੇਜਣੇ ਸ਼ੁਰੂ ਕੀਤੇ।
ਇਹ ਫੀਡਬੈਕ ਲੂਪ ਮਹੱਤਵਪੂਰਨ ਸੀ: ਪ੍ਰੋਜੈਕਟ ਹੁਣ ਇਕ ਵਿਅਕਤੀ ਦੀ ਸੰਦ-ਸੋਮ ਨਹੀਂ ਰਹਿ ਗਿਆ, ਬਲਕਿ ਕਈ ਵੈਬਮਾਸਟਰਾਂ ਦੀਆਂ ਜ਼ਰੂਰਤਾਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਪ੍ਰਾਜੈਕਟ ਬਣ ਗਿਆ।
PHP 3 ਇੱਕ ਵੱਡਾ ਰੀਰਾਈਟ ਸੀ ਜਿਸ ਨੇ ਕੋਰ ਇੰਜਿਨ ਬਦਲਿਆ ਅਤੇ ਨਾਮ “PHP: Hypertext Preprocessor” ਲਿਆ। ਇਹ ਸਿਰਫ਼ ਬ੍ਰਾਂਡਿੰਗ ਨਹੀਂ ਸੀ—ਇਸ ਨਾਲ ਭਾਸ਼ਾ ਜ਼ਿਆਦਾ ਸਥਿਰ ਅਤੇ ਐਕਸਟੈਂਡ ਕਰਨ ਯੋਗ ਬਣੀ।
ਅਸਲ ਵਿਚ, ਇਹ ਮੋੜ ਸੀ ਜਿਸ ਨੇ PHP ਨੂੰ ਇੱਕ ਪ੍ਰਯੋਗਿਕ, ਵਿਸਥਾਰਯੋਗ ਪਲੇਟਫਾਰਮ ਬਣਾਇਆ।
Zend (Andi Gutmans ਅਤੇ Zeev Suraski ਦੁਆਰਾ) ਨੇ Zend Engine ਤਿਆਰ ਕੀਤਾ—PHP ਲਈ ਇੱਕ ਨਵਾਂ ਕੋਰ। ਇਹ ਅੰਦਾਜ਼ਨ ਇਸ ਤਰ੍ਹਾਂ ਸੀ ਜਿਵੇਂ ਕਾਰ ਦਾ ਮੋਟਰ ਬਦਲ ਦਿੱਤਾ ਗਿਆ ਹੋਵੇ ਪਰ ਮਾਡਲ ਇਕੋ ਰਹੇ।
ਇਸ ਨਾਲ ਰਨਟਾਇਮ ਤੇਜ਼ ਹੋਇਆ, ਇੰਟਰਨਲ ਢਾਂਚਾ ਸੁਧਰਿਆ ਅਤੇ ਐਕਸਟੈਂਸ਼ਨਾਂ ਜੋੜਨ ਲਈ ਸਫ਼ਾਈ ਆਈ—ਇਹ ਸਭ ਹੋਸਟਿੰਗ ਅਤੇ ਵੱਡੇ ਕੋਡਬੇਸ ਲਈ ਬਹੁਤ ਕਾਰਗਰ ਸਾਬਤ ਹੋਇਆ।
LAMP (Linux, Apache, MySQL, PHP) ਨੇ PHP ਲਈ ਇੱਕ ਮੂਲ 'ਘਰ' ਮੁਹੱਈਆ ਕਰਵਾਇਆ। Linux ਅਤੇ Apache ਆਮ ਤੇ ਸਸਤੇ ਸਨ; PHP ਅਸਾਨੀ ਨਾਲ Apache ਦੇ ਰਿਕਵੈਸਟ/ਰਿਸਪਾਂਸ ਮਾਡਲ ਵਿੱਚ ਫਿਟ ਹੋ ਜਾਂਦਾ ਸੀ।
MySQL ਨਾਲ ਗਹਿਰਾ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਹੋਣ ਕਾਰਨ ਡੇਟਾਬੇਸ-ਬੈਕਡ ਸਾਈਟਾਂ ਬਣਾਉਣਾ ਸੁਖਦਾਈ ਹੋ ਗਿਆ—ਇਸ ਤਰ੍ਹਾਂ ਇੱਕ ਵੱਡੀ ਗਿਣਤੀ ਸਾਈਟਾਂ ਨੇ ਉਹੀ ਸਟੈਕ ਅਪਨਾਇਆ।
ਆਮ ਤੌਰ 'ਤੇ, ਹੋਰ ਲੋਕ PHP-ਅਧਾਰਤ CMS, ਈ-ਕਾਮਰਸ ਸਿਸਟਮ ਅਤੇ ਫੋਰਮ ਸੌਫਟਵੇਅਰ ਇੰਸਟਾਲ ਕਰਦੇ—ਇਹ ਬਣਿਆ ਇਕ ਇਕ-ਕਲਿੱਕੀ ਫੈਸਲਾ।
ਜਦੋਂ ਇੱਕ ਵੱਡਾ ਹਿੱਸਾ ਵੈੱਬ ਕਿਸੇ ਕੁਝ ਪ੍ਰੋਡਕਟਾਂ (ਖਾਸ ਕਰਕੇ WordPress) 'ਤੇ ਦੌੜਦਾ, ਤਾਂ ਉਹ ਭਾਸ਼ਾ ਆਪਣਾ footprint ਵਧਾ ਲੈਂਦੀ—ਇਹ ਵਕਫ PHP ਦੀ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਅਰਥਵਿਵਸਥਾ ਨਾਲ ਮਿਲਦੀ ਹੈ।
PHP ਦੀ ਕਈ ਆਲੋਚਨਾਵਾਂ ਵਾਸਤਵਕ ਹਨ—ਫੰਕਸ਼ਨ ਨਾਮਾਂ ਵਿੱਚ ਅਸਮਰੂਪਤਾ, ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਵੱਖ-ਵੱਖ ਕ੍ਰਮਬੱਧਤਾ ਅਤੇ ਪੁਰਾਣੇ API-ਜਵਾਬ ਇੱਕੱਠੇ ਹੋਣਾ ਇਹਨਾਂ ਵਿੱਚੋਂ ਹਨ।
ਇਹ ਸਭ PHP ਦੇ ਤੇਜ਼ੀ ਨਾਲ ਵਧਣ ਅਤੇ ਪਿਛਲੇ ਕੋਡ ਨੂੰ ਟੂਟਣ ਤੋਂ ਬਚਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਦੇ ਨਤੀਜੇ ਹਨ।
ਸੁਰੱਖਿਆ ਦੇ ਮੁੱਦੇ ਅਕਸਰ PHP ਖ਼ਾਸ ਨਹੀਂ ਹੁੰਦੇ—ਬਲਕਿ ਐਪਲਿਕੇਸ਼ਨ-ਪੱਧਰ ਦੀਆਂ ਚੁਕੀਆਂ (ਉਪਭੋਗੀ ਇਨਪੁੱਟ 'ਤੇ ਭਰੋਸਾ, SQL string concatenation, ਗਲਤ ਫਾਈਲ ਅੱਪਲੋਡ ਕੰਫਿਗ, ਆਦਿ) ਵਿਸ਼ੇਸ਼ ਜੋਖਮ ਬਣਾਉਂਦੀਆਂ ਹਨ।
PHP 7 ਨੇ ਮੁੱਖ ਇੰਟਰਨਲ ਸੁਧਾਰ ਕਰਕੇ ਦਰਅਸਲ ਪਰਫੋਰਮੈਂਸ ਵਿੱਚ ਵਿਸ਼ਾਲ ਤੇਜ਼ੀ ਲਿਆਈ—ਇਸ ਨਾਲ ਇੱਕੋ ਹਾਰਡਵੇਅਰ 'ਤੇ ਇੱਕੋ ਐਪ ਹੋਰ ਬੇਹਤਰ ਰਿਕਵੈਸਟ ਹੈਂਡਲ ਕਰ ਸਕਦੀ ਹੈ।
PHP 8+ ਨੇ ਹੋਰ ਆਧੁਨਿਕ ਫੀਚਰ ਦਿੱਤੇ ਜੋ ਵੱਡੇ ਕੋਡਬੇਸਾਂ ਨੂੰ ਸਮਝਣਾ ਅਤੇ ਰੱਖਣਾ ਆਸਾਨ ਬਣਾਉਂਦੇ ਹਨ (ਜਿਵੇਂ union types, attributes, ਅਤੇ JIT)।
ਇਸ ਦੇ ਨਾਲ Composer ਨੇ ਡੀਪੈਂਡੈਂਸੀ ਮੈਨੇਜਮੈਂਟ ਸਧਾਰਣ ਕਰ ਦਿੱਤਾ—ਹੱਥੋਂ-ਹੱਥ ਲਾਇਬ੍ਰੇਰੀਆਂ ਕਾਪੀ ਕਰਨ ਦੀ ਜਗ੍ਹਾ, dependency declare ਅਤੇ autoloading ਆਮ ਹੋ ਗਿਆ।
PHP ਅਜੇ ਵੀ ਕਈ ਵੈੱਬ ਕੰਮਾਂ ਲਈ ਪ੍ਰਯੋਗਸ਼ੀਲ ਚੋਣ ਹੈ—ਖ਼ਾਸ ਕਰਕੇ ਜਦੋਂ ਤੁਸੀਂ CMS-ਚਲਤ ਸਾਈਟਾਂ, Content-heavy marketing sites, ਈ-ਕਾਮਰਸ ਜਾਂ ਅੰਦਰੂਨੀ ਟੂਲ ਚਲਾ ਰਹੇ ਹੋ।
ਇਸ ਦੇ ਫੈਸਲੇ ਲਈ ਪ੍ਰੈਕਟਿਕਲ ਜੋੜ-ਤੋੜ ਕਰੋ: ਟੀਮ ਦਾ ਨੌਂਲ, ਹੋਸਟਿੰਗ/ਓਪਰੇਸ਼ਨ, ਮੌਜੂਦਾ ਕੋਡਬੇਸ ਅਤੇ ਪ੍ਰਦਰਸ਼ਨ ਦੀ ਲੋੜ—ਇਹ ਸਭ ਮਾਇਨੇ ਰੱਖਦੇ ਹਨ।
ਜਦੋਂ ਕਦੇ ਲੋੜ ਹੋਵੇ, ਇੱਕ ਤੇਜ਼ ਪ੍ਰੋਟੋਟਾਇਪ ਬਹੁਤ ਸਵਾਲਾਂ ਦਾ ਜਵਾਬ ਦੇ ਸਕਦਾ ਹੈ—ਯਹੀ PHP ਦੀ ਸ਼ੁਰੂਆਤੀ ਕਹਾਣੀ ਸਿਖਾਉਂਦੀ ਹੈ: ਜਲਦੀ ਕੰਮ ਕਰਦਾ ਨਮੂਨਾ ਬਣਾਉ ਅਤੇ ਫਿਰ ਅੱਗੇ ਵਧ।