Laravel: വേർഷൻ 5 മുതൽ ഇന്ന് വരെ
Laravel വെറുതെ മാറിയതല്ല, അത് വളർന്നതാണ്.
നിങ്ങൾ ഒരു പഴയ Laravel 5 പ്രോജക്റ്റ് തുറന്നാൽ, വ്യത്യസ്ത പതിറ്റാണ്ടുകളിലെ മുറികളുള്ള ഒരു വീട് പോലെ അത് തോന്നും. അത് പ്രവർത്തിക്കും, പക്ഷേ കൺട്രോളറുകൾ (controllers) അമിതമായി കാര്യങ്ങൾ ചെയ്യുന്നു. മിഡിൽവെയറുകൾ (middleware) പഴയതാണ്. ഹെൽപ്പർ ഫയലുകൾ (helper files) ക്രമരഹിതമാണ്.
എങ്കിലും, അതിന്റെ അടിസ്ഥാനം (core) മാറ്റമില്ലാതെ തുടരുന്നു. നിങ്ങൾ ഇപ്പോഴും routes, Eloquent, migrations, Blade എന്നിവ ഉപയോഗിക്കുന്നു.
Laravel ഒരു പുതിയ ഫ്രെയിംവർക്ക് ആയി മാറിയില്ല. മറിച്ച്, അതേ ആശയത്തിന്റെ പക്വതയാർന്ന ഒരു പതിപ്പായി മാറി: നിങ്ങൾക്ക് വൃത്തിയുള്ള ഡിഫോൾട്ടുകൾ നൽകുകയും, അടിസ്ഥാന ഘടനകളുമായി (plumbing) പൊരുതി സമയം കളയാതെ പ്രോജക്റ്റുകൾ വേഗത്തിൽ പുറത്തിറക്കാൻ സഹായിക്കുകയും ചെയ്യുക എന്നതാണ് അതിന്റെ ലക്ഷ്യം.
ഈ വൈദഗ്ധ്യത്തിന്റെ പരിണാമം
Laravel 5 ഒരു മികച്ച ടൂൾബോക്സ് ആയിരുന്നു. അത് PHP-യെ വീണ്ടും ഒരു ഗൗരവമുള്ള പ്ലാറ്റ്ഫോമായി തോന്നിപ്പിച്ചു. അത് നിങ്ങൾക്ക് നൽകി:
- റിക്വസ്റ്റ് ഫിൽട്ടറിംഗിനായി Middleware.
- വാലിഡേഷൻ ലളിതമാക്കാൻ Form requests.
- ബാക്ക്ഗ്രൗണ്ട് ടാസ്ക്കുകൾക്കായി Jobs, queues.
- ഡാറ്റാബേസ് മോഡലുകൾക്കായി Eloquent.
ദൈനംദിന ജോലികൾ കൂടുതൽ സുഗമമാക്കുന്നതിലാണ് Laravel 6, 7, 8 എന്നിവ ശ്രദ്ധ കേന്ദ്രീകരിച്ചത്.
- Semantic versioning സ്ഥിരത നൽകി.
- Factories ടെസ്റ്റിംഗ് ഡാറ്റ എളുപ്പമാക്കി.
- Blade components കോഡ് ആവർത്തനം ഒഴിവാക്കി.
- Sanctum API ഓതന്റിക്കേഷൻ ലളിതമാക്കി.
Laravel 9, 10 എന്നിവ ആധുനിക PHP-യെ സ്വീകരിച്ചു.
- നിങ്ങൾക്ക് typed properties-ഉം മെച്ചപ്പെട്ട return types-ഉം ലഭിച്ചു.
- ടെസ്റ്റിംഗ് വർക്ക്ഫ്ലോയുടെ ഒരു പ്രധാന ഭാഗമായി മാറി.
- ഇക്കോസിസ്റ്റം വെറും കോഡിന് അപ്പുറത്തേക്ക് വളർന്നു.
ആധുനിക Laravel ഒരു സമ്പൂർണ്ണ വർക്ക്ഷോപ്പ് പോലെയാണ്. ഇതിൽ deployment, monitoring, AI-അധിഷ്ഠിത വർക്ക്ഫ്ലോകൾ എന്നിവ ഉൾപ്പെടുന്നു.
ഇക്കോസിസ്റ്റമാണ് യഥാർത്ഥ കരുത്ത്
Laravel വെറുമൊരു ഫ്രെയിംവർക്ക് മാത്രമല്ല. അത് സേവനങ്ങളുടെ ഒരു നഗരം പോലെയാണ്. ആദ്യ ദിവസം തന്നെ നിങ്ങൾക്ക് എല്ലാ കാര്യങ്ങളും ആവശ്യമില്ലായിരിക്കാം, പക്ഷേ അവ നിലവിലുണ്ടെന്ന് നിങ്ങൾ അറിഞ്ഞിരിക്കണം:
- Deployment: Forge സെർവറുകളെ നിയന്ത്രിക്കുന്നു. Vapor AWS-ൽ സെർവർലെസ്സ് സ്കെയിലിംഗ് കൈകാര്യം ചെയ്യുന്നു. Envoyer തടസ്സമില്ലാത്ത (zero-downtime) ഡിപ്ലോയ്മെന്റുകൾ ഉറപ്പാക്കുന്നു.
- Management: Nova പ്രീമിയം അഡ്മിൻ പാനലുകൾ നൽകുന്നു.
- Visibility: Horizon Redis ക്യൂകളെ നിരീക്ഷിക്കുന്നു. Telescope ഒരു ഡിബഗ്ഗിംഗ് അസിസ്റ്റന്റായി പ്രവർത്തിക്കുന്നു. Pulse പെർഫോമൻസ് ട്രാക്ക് ചെയ്യുന്നു.
- Real-time: Reverb നേറ്റീവ് WebSocket സപ്പോർട്ട് നൽകുന്നു.
- Core Utilities: Cashier ബില്ലിംഗ് കൈകാര്യം ചെയ്യുന്നു. Scout സെർച്ച് കൈകാര്യം ചെയ്യുന്നു. Sanctum API ഓതന്റിക്കേഷൻ കൈകാര്യം ചെയ്യുന്നു.
ഫ്രെയിംവർക്കിൽ നിന്ന് ഇക്കോസിസ്റ്റത്തിലേക്കുള്ള മാറ്റം
ഏറ്റവും വലിയ മാറ്റം ലഭിക്കുന്ന ഗുണഫലങ്ങളുടെ (leverage) അളവിലാണ്. Laravel 5 PHP ക്രമീകരിക്കാൻ നിങ്ങളെ സഹായിച്ചു. എന്നാൽ ആധുനിക Laravel ബിൽഡ് ചെയ്യാനും, ഡിപ്ലോയ് ചെയ്യാനും, നിരീക്ഷിക്കാനും, സ്കെയിൽ ചെയ്യാനും, സെർച്ച് ചെയ്യാനും നിങ്ങളെ സഹായിക്കുന്നു.
ഇത് ഒരു ഭാരമേറിയ ബാഗ് ചുമക്കുന്ന അവസ്ഥയിൽ നിന്ന്, എല്ലാം കൃത്യമായി അടുക്കിവെച്ച ഒരു ചെറിയ ബാഗ് ഉപയോഗിക്കുന്ന അവസ്ഥയിലേക്ക് നിങ്ങളെ മാറ്റുന്നു. നിങ്ങൾ കുറഞ്ഞ ഭാരം ചുമക്കുന്നുണ്ടെങ്കിലും എല്ലാ കഴിവും നിലനിർത്തുന്നു.
പഴയ ആപ്പുകൾ അപ്ഗ്രേഡ് ചെയ്യുന്നതിനുള്ള നിർദ്ദേശങ്ങൾ
ഒരു അപ്ഗ്രേഡിനെ എല്ലാം വീണ്ടും എഴുതാനുള്ള ഒരു ദൗത്യമായി കാണരുത്. ആളുകൾ താമസിക്കുന്ന ഒരു വീട് പുതുക്കിപ്പണിയുന്നത് പോലെ അതിനെ കാണുക.
- ഓരോ തവണയും ഒരു പ്രധാന വേർഷൻ വീതം അപ്ഗ്രേഡ് ചെയ്യുക.
- നിങ്ങളുടെ ബിസിനസ് ലോജിക് സംരക്ഷിക്കാൻ ടെസ്റ്റുകൾ ഉപയോഗിക്കുക.
- ആദ്യം നിങ്ങളുടെ പാക്കേജ് ഡിപെൻഡൻസികൾ (package dependencies) പരിശോധിക്കുക.
- റിലീസ് നോട്ടുകൾ മാത്രമല്ല, അപ്ഗ്രേഡ് ഗൈഡുകളും വായിക്കുക.
വിരസമായ ഇൻഫ്രാസ്ട്രക്ചർ മനോഹരമാണ്. അതിന്റെ അർത്ഥം, വയറിംഗിന് പകരം ഉൽപ്പന്നത്തിന്റെ ലോജിക്കിൽ (product logic) നിങ്ങൾക്ക് ഊർജ്ജം ചെലവഴിക്കാൻ സാധിക്കും എന്നാണ്.
Source: https://dev.to/nazar_boyko/laravel-from-version-5-to-today-the-framework-grew-up-with-us-3cil
