നിങ്ങളുടെ ആപ്ലിക്കേഷനായി ഒരു അഭ്യർത്ഥന URL സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു മാർഗമാണ് പാത്ത്. ഈ URL-കൾ ഒരു വെബ്സൈറ്റിലെ നിർദ്ദിഷ്ട ഫയലുകളുമായി ബന്ധപ്പെടുത്തേണ്ടതില്ല, അവ മനുഷ്യർക്ക് വായിക്കാവുന്നതും SEO സൗഹൃദവുമാണ്.
Laravel-ൽ, le ഫോൾഡറിനുള്ളിൽ പാതകൾ സൃഷ്ടിക്കപ്പെടുന്നു routes
. അവ ഫയലിൽ സൃഷ്ടിച്ചിരിക്കുന്നു web.php
വെബ്സൈറ്റുകൾക്കും അകത്തും api.php
API-കൾക്കായി.
ഇവ route
ഗ്രൂപ്പിലേക്ക് നിയോഗിക്കപ്പെട്ടിരിക്കുന്നു middleware
നെറ്റ്വർക്ക്, സെഷൻ നിലയും സുരക്ഷയും ഹൈലൈറ്റ് ചെയ്യുന്നു CSRF
. ഉള്ള വഴികൾ route/api.php
അവ നിലയില്ലാത്തതും API മിഡിൽവെയർ ഗ്രൂപ്പിലേക്ക് നിയോഗിക്കപ്പെട്ടവയുമാണ്.
പ്രീ-ഇൻസ്റ്റലേഷൻdefiലാറവെൽ നിത രണ്ട് പാതകളുമായാണ് വരുന്നത്, ഒന്ന് വെബിനും ഒന്ന് എപിഐക്കും. വെബിനുള്ള പാത ഇങ്ങനെയാണ് കാണപ്പെടുന്നത് web.php
:
Route::get('/', function () {
return view('welcome');
});
എല്ലാ ലാറവൽ പാതകളും defiഡയറക്ടറിയിൽ സ്ഥിതി ചെയ്യുന്ന പാത്ത് ഫയലുകളിൽ niti routes
. റൂട്ട് മാനേജ്മെന്റ് ആപ്ലിക്കേഷൻ, defiഫയലിൽ ഒതുക്കി App\Providers\RouteServiceProvider
, ഈ ഫയലുകൾ സ്വയമേവ നിരത്തുന്നത് ശ്രദ്ധിക്കുന്നു. ഫയല് route/web.php
defiനിങ്ങളുടെ വെബ് ഇന്റർഫേസിന്റെ പാതകൾ ഇല്ലാതാക്കുന്നു.
സാധ്യത defiഈ കൺട്രോളർ പ്രവർത്തനത്തിനായി ഇനിപ്പറയുന്ന രീതിയിൽ ഒരു പാത്ത് നിഷ് ചെയ്യുക:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: രീതി Route::resource
ഒരു ആപ്ലിക്കേഷന് ആവശ്യമായ എല്ലാ അടിസ്ഥാന പാതകളും നിർമ്മിക്കുകയും കൺട്രോളർ ക്ലാസ് വഴി നിയന്ത്രിക്കുകയും ചെയ്യുന്നു.
ഒരു അഭ്യർത്ഥന നിർദ്ദിഷ്ട റൂട്ട് യുആർഐയുമായി പൊരുത്തപ്പെടുമ്പോൾ, രീതി അഭ്യർത്ഥിക്കുന്നു show
defiകൺട്രോളറിൽ പൂർത്തിയായി App\Http\ControllersUserController
, രീതിയിലേക്ക് റൂട്ട് പാരാമീറ്ററുകൾ കൈമാറുന്നു.
ഉറവിടങ്ങൾക്കായി, നിങ്ങൾ ആപ്ലിക്കേഷനിൽ രണ്ട് കാര്യങ്ങൾ ചെയ്യേണ്ടതുണ്ട് Laravel. ആദ്യം, നിങ്ങൾ ഒരു റിസോഴ്സ് പാത്ത് സൃഷ്ടിക്കേണ്ടതുണ്ട് Laravel അത് പാത്തുകൾ ചേർക്കുകയും അപ്ഡേറ്റ് ചെയ്യുകയും കാണുകയും ഇല്ലാതാക്കുകയും ചെയ്യുന്നു. രണ്ടാമതായി, ചേർക്കുന്നതിനും അപ്ഡേറ്റ് ചെയ്യുന്നതിനും കാണുന്നതിനും ഇല്ലാതാക്കുന്നതിനും ഒരു രീതി നൽകുന്ന ഒരു റിസോഴ്സ് കൺട്രോളർ സൃഷ്ടിക്കുക.
പ്രീ-ഇൻസ്റ്റലേഷൻdefiLaravel nita രണ്ട് പാതകളുമായാണ് വരുന്നത്: ഒന്ന് വെബിനും ഒന്ന് API നും. web.php-ൽ വെബിലേക്കുള്ള റൂട്ട് എങ്ങനെയിരിക്കുമെന്ന് ഇതാ:
Route::get(‘/’, function () {
return view(‘welcome’);
});
ലാറവെൽ മിഡിൽവെയർ അഭ്യർത്ഥനയ്ക്കും പ്രതികരണത്തിനും ഇടയിലുള്ള ഒരു പാലമായി പ്രവർത്തിക്കുന്നു. ഇത് ഏതെങ്കിലും തരത്തിലുള്ള ഫിൽട്ടർ ഘടകമാകാം.
Laravel ഒരു കൂടെ പ്രവർത്തിക്കുക മിഡിൽവെയർ ക്ലയന്റ് ആപ്ലിക്കേഷൻ പരിശോധിച്ചിട്ടുണ്ടോ ഇല്ലയോ എന്ന് സ്ഥിരീകരിക്കാനുള്ള ചുമതലയുള്ളതാണ്. ക്ലയന്റ് സ്ഥിരീകരിച്ചാൽ, റൂട്ടിംഗ് ഹോം പേജിലേക്കോ ലോഗിൻ പേജിലേക്കോ റീഡയറക്ട് ചെയ്യുന്നു.
route
മുമ്പത്തെ കോഡ് defiഹോം പേജിലേക്കുള്ള ഒരു പാത ഒഴിവാക്കുന്നു. ഈ പാതയ്ക്ക് ഒരു അഭ്യർത്ഥന ലഭിക്കുമ്പോഴെല്ലാം get
ഓരോ /
, തിരികെ നൽകും view
welcome
.
എല്ലാ ലാറവൽ പാതകളും defiനിതി നിന്റെ routing
, ഇവ ഡയറക്ടറിക്കുള്ളിൽ സ്ഥിതിചെയ്യുന്നു routes
. തൽഫലമായി, l'AppProvidersRouteServiceProvider
അപേക്ഷയുടെ ഈ രേഖകൾ നിരത്തുന്നു. ഫയല് route/web.php
നിങ്ങളുടെ വെബ് ഇന്റർഫേസിനായി മാനേജ് ചെയ്യുന്ന റൂട്ടുകൾ അടങ്ങിയിരിക്കുന്നു.
പാതയുടെ ഘടന വളരെ ലളിതമാണ്. ഉചിതമായ ഫയൽ തുറക്കുക (`web.php
` o `api.php
` ) കൂടാതെ കോഡിന്റെ വരി ആരംഭിക്കുക `Route:: `
, ആ നിർദ്ദിഷ്ട റൂട്ടിലേക്ക് നിങ്ങൾ അസൈൻ ചെയ്യാൻ ആഗ്രഹിക്കുന്ന അഭ്യർത്ഥനയ്ക്ക് ശേഷം അഭ്യർത്ഥനയെ തുടർന്ന് നിർവ്വഹിക്കുന്ന ഫംഗ്ഷൻ വ്യക്തമാക്കുക.
Laravel ഇനിപ്പറയുന്ന പാത്ത് രീതികൾ വാഗ്ദാനം ചെയ്യുന്നു:
get
post
put
delete
patch
options
പാതകളാണ് defiHTTP, മറുപടി നൽകാനുള്ള റൂട്ട്, ക്ലോസ്, അല്ലെങ്കിൽ കൺട്രോളർ എന്നിവയ്ക്കൊപ്പം റൂട്ട് ക്ലാസിനുള്ളിൽ Laravel-ൽ രേഖപ്പെടുത്തിയിരിക്കുന്നു.
Laravel-ൽ നിങ്ങളുടെ സ്വന്തം പാതകൾ എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് നോക്കാം.
ഇപ്പോൾ ഞാൻ ടൈംടേബിൾ 2 പ്രിന്റ് ചെയ്യുന്ന ഒരു അടിസ്ഥാന പാത സൃഷ്ടിക്കാൻ പോകുന്നു.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
മുകളിലെ കോഡിൽ, URL-നായി ഞാൻ ഒരു GET അഭ്യർത്ഥന പാത സൃഷ്ടിച്ചു /table
, അത് സ്ക്രീനിൽ 2 ന്റെ ടൈം ടേബിൾ പ്രിന്റ് ചെയ്യും.
ഗുണന പട്ടിക ആവശ്യമുള്ള സംഖ്യയെ പരാമീറ്റർ ചെയ്യുന്ന അതേ കോഡ് നമുക്ക് നോക്കാം:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
കോഡിൽ 'number
ബ്രേസുകൾക്കിടയിലുള്ള പരാമീറ്ററിനെ പ്രതിനിധീകരിക്കുന്നു, അതായത് ഗുണന പട്ടിക കണക്കാക്കുന്ന സംഖ്യ. തരത്തിന്റെ ഒരു URL വ്യക്തമാക്കുമ്പോഴെല്ലാം /table/n
, അപ്പോൾ നമ്പർ ടേബിൾ പ്രിന്റ് ചെയ്യും n
.
രണ്ട് സവിശേഷതകളും ഒരു പാതയിൽ സംയോജിപ്പിക്കാനുള്ള വഴിയും ഉണ്ട്. '?' എന്ന ചോദ്യചിഹ്നം ഉപയോഗിച്ച് ഓപ്ഷണൽ പാരാമീറ്ററുകൾ ചേർക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഓപ്ഷണൽ പാരാമീറ്ററുകൾ ഫീച്ചർ Laravel വാഗ്ദാനം ചെയ്യുന്നു. ഓപ്ഷണൽ പാരാമീറ്ററിനും മുൻ മൂല്യത്തിനും ശേഷംdefiരാത്രി. ഉദാഹരണം നോക്കാം:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
മുകളിലുള്ള കോഡിൽ ഞങ്ങൾ ഞങ്ങളുടെ റൂട്ട് പാരാമീറ്റർ സൃഷ്ടിച്ചു, നമ്പർ ഓപ്ഷണൽ ആക്കി, അതിനാൽ ഒരു ഉപയോക്താവ് റൂട്ട് ചെയ്താൽ `/table
` അപ്പോൾ അത് സ്ഥിരസ്ഥിതിയായി 2 ന്റെ പട്ടിക ജനറേറ്റ് ചെയ്യുംdefinite എന്നതും ഒരു ഉപയോക്താവ് ` എന്നതിലേക്ക് പോകുകയാണെങ്കിൽ/table/{number}
പിന്നെ നമ്പർ ടേബിൾ 'number'
ഉത്പാദിപ്പിക്കും.
മുമ്പത്തെ ഉദാഹരണത്തിൽ, ഗുണനപ്പട്ടിക സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു പാത ഞങ്ങൾ സൃഷ്ടിച്ചു, എന്നാൽ ഗുണനപ്പട്ടിക സൃഷ്ടിക്കുമ്പോൾ പിശകുകൾ ഒഴിവാക്കാൻ പാതയുടെ പരാമീറ്റർ യഥാർത്ഥത്തിൽ ഒരു സംഖ്യയാണെന്ന് എങ്ങനെ ഉറപ്പാക്കാം?
Laravel ൽ, നിങ്ങൾക്ക് കഴിയും defi` രീതി ഉപയോഗിച്ച് റൂട്ട് പാരാമീറ്ററിൽ ഒരു നിയന്ത്രണം ഒഴിവാക്കുകwhere
`റൂട്ട് ഉദാഹരണത്തിൽ. ദി `where
` പാരാമീറ്റർ നാമവും ആ പരാമീറ്ററിനായി ഒരു സാധാരണ പദപ്രയോഗവും എടുക്കുന്നു.
ഇനി നമ്മുടെ `പാരാമീറ്ററിനുള്ള പരിമിതിയുടെ ഒരു ഉദാഹരണം നോക്കാം{numero}
ഫംഗ്ഷനിലേക്ക് ഒരു നമ്പർ മാത്രമേ പാസ്സാക്കിയിട്ടുള്ളൂ എന്ന് ഉറപ്പാക്കാൻ.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
മുകളിലെ കോഡിൽ, പാത്ത് നമ്പറിനായി ഞങ്ങൾ ഒരു സാധാരണ എക്സ്പ്രഷൻ ഉപയോഗിച്ചു. ഇപ്പോൾ, ഒരു ഉപയോക്താവ് റൂട്ട് ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ /പട്ടിക/നമ്പർ പ്രദർശിപ്പിക്കും ഒരു NotFoundHttpException ഒഴിവാക്കൽ.
Laravel ൽ, നിങ്ങൾക്ക് കഴിയും defiഒരു റൂട്ടിനായി ഒരു കൺട്രോളർ രീതി ഒഴിവാക്കുക. ഒരു കൺട്രോളർ രീതി എല്ലാ പ്രവർത്തനങ്ങളും ചെയ്യുന്നു defiഒരു ഉപയോക്താവ് റൂട്ടിലേക്ക് പ്രവേശിക്കുമ്പോഴെല്ലാം നൈറ്റ്.
ഇനിപ്പറയുന്ന കോഡ് ഉപയോഗിച്ച് ഞങ്ങൾ കൺട്രോളർ രീതി നൽകുന്നു 'functionname'
ഒരു റൂട്ടിലേക്ക്:
Route:: get ( '/home' , 'YourController@functionname' ) ;
കോഡ് ആരംഭിക്കുന്നത് `Route::`
അതുകൊണ്ട് defiപാതയ്ക്കുള്ള അഭ്യർത്ഥന രീതി ഒഴിവാക്കുന്നു. തുടർന്ന്, defiരീതിയുടെ പേരിന് മുമ്പായി @ ചിഹ്നം ചേർത്ത് രീതിയ്ക്കൊപ്പം നിങ്ങളുടെ പാതയും കൺട്രോളറും പൂർത്തിയാക്കുക.
Laravel ൽ, നിങ്ങൾക്ക് കഴിയും defiനിങ്ങളുടെ പാതയ്ക്ക് ഒരു പേര് നൽകുക. ഈ പേര് പലപ്പോഴും വളരെ ഉപയോഗപ്രദമാണ്. ഉദാഹരണത്തിന്, ഒരു ഉപയോക്താവിനെ ഒരിടത്ത് നിന്ന് മറ്റൊന്നിലേക്ക് റീഡയറക്ട് ചെയ്യണമെങ്കിൽ, അത് ചെയ്യേണ്ടതില്ല defiപൂർണ്ണ റീഡയറക്ട് URL ഒഴിവാക്കുക. നിങ്ങൾക്ക് അവന്റെ പേര് നൽകാം. നിങ്ങൾക്ക് കഴിയും defi` രീതി ഉപയോഗിച്ച് റൂട്ടിന്റെ പേര് ഒഴിവാക്കുകname
`റൂട്ട് ഉദാഹരണത്തിൽ.
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
})->where('number', '[0-9]+')->name(‘table’);
ഇപ്പോൾ, ഇനിപ്പറയുന്ന കോഡിലൂടെ എനിക്ക് ഈ പാതയ്ക്കുള്ള url പുനഃസൃഷ്ടിക്കാനാകും:
$url = route('table');
അതുപോലെ, ഈ URL-ലേക്ക് റീഡയറക്ടുചെയ്യുന്നതിന്, ശരിയായ വാക്യഘടന ഇതായിരിക്കും:
return redirect()->route('table');
Route Groups
I Route Groups
, അക്ഷരാർത്ഥത്തിൽ പാത്ത് ഗ്രൂപ്പുകൾ, Laravel-ലെ ഒരു പ്രധാന സവിശേഷതയാണ്, ഇത് നിങ്ങളെ പാത്തുകൾ ഗ്രൂപ്പ് ചെയ്യാൻ അനുവദിക്കുന്നു. എല്ലാ ഗ്രൂപ്പുചെയ്ത പാതകളിലേക്കും ആട്രിബ്യൂട്ടുകൾ പ്രയോഗിക്കാൻ നിങ്ങൾ താൽപ്പര്യപ്പെടുമ്പോൾ പാത്ത് ഗ്രൂപ്പുകൾ ഉപയോഗപ്രദമാണ്. നിങ്ങൾ പാത്ത് ഗ്രൂപ്പുകൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, ഓരോ പാതയിലും വ്യക്തിഗതമായി ആട്രിബ്യൂട്ടുകൾ പ്രയോഗിക്കേണ്ടതില്ല; ഇത് ഡ്യൂപ്ലിക്കേഷൻ ഒഴിവാക്കുന്നു. പോലുള്ള ആട്രിബ്യൂട്ടുകൾ പങ്കിടാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു middleware
o namespaces
, സെൻസ defiഓരോ വ്യക്തിഗത പാതയിലും ഈ ആട്രിബ്യൂട്ടുകൾ പൂർത്തിയാക്കുക. ഈ പങ്കിട്ട ആട്രിബ്യൂട്ടുകൾ രീതിയുടെ ആദ്യ പാരാമീറ്ററായി ഒരു അറേ ഫോർമാറ്റിൽ കൈമാറാൻ കഴിയും Route::group
.
ഒരു റൂട്ട് ഗ്രൂപ്പിന്റെ വാക്യഘടന
Route::group([], callback);
പാവ് []: ആദ്യ പാരാമീറ്ററായി ഗ്രൂപ്പ് രീതിയിലേക്ക് കൈമാറിയ ഒരു അറേ ആണ്.
ഉദാഹരണം Route Group
നെൽ web.php
Route::group([], function()
{
Route::get('/first' , function()
{
echo "first way route" ;
});
Route::get('/second' , function()
{
echo "second way route" ;
});
Route::get('/third' , function()
{
echo "third way route" ;
});
});
കോഡിൽ, defiനമുക്ക് രീതി കണ്ടെത്താം ഗ്രൂപ്പ്(), ഇതിൽ രണ്ട് പരാമീറ്ററുകൾ അടങ്ങിയിരിക്കുന്നു, അതായത് array
e closure
. ഉള്ളിൽ closure
, നമുക്ക് കഴിയും defiഎത്രയെണ്ണം പൂർത്തിയാക്കുക route
ഞങ്ങൾ ആഗ്രഹിക്കുന്നു. മുകളിലുള്ള കോഡിൽ, ഞങ്ങൾക്കുണ്ട് defiമൂന്ന് പൂർത്തിയാക്കി route
.
ബ്രൗസർ വഴിയാണെങ്കിൽ ഞങ്ങൾ URL ആക്സസ് ചെയ്യുന്നു localhost/myproject/first
അപ്പോൾ ആദ്യത്തെയാൾ ഇടപെടുന്നു route
ബ്രൗസറിൽ ടൈപ്പ് ചെയ്യുന്നു first way route
.
URL ഉപയോഗിച്ച് localhost/myproject/second
അപ്പോൾ രണ്ടാമത്തേത് വരുന്നു route
ബ്രൗസറിൽ ടൈപ്പ് ചെയ്യുന്നു second way route
.
URL ഉള്ളപ്പോൾ localhost/myproject/third
അപ്പോൾ മൂന്നാമത്തേത് വരുന്നു route
ബ്രൗസറിൽ ടൈപ്പ് ചെയ്യുന്നു third way route
.
Route Groups
എന്നതിന്റെ പ്രിഫിക്സുകൾ route
ഒന്നിലധികം URL ഘടന നൽകാൻ ഞങ്ങൾ ആഗ്രഹിക്കുമ്പോൾ അവ ഉപയോഗിക്കുന്നു route
.
എല്ലാ പാതകൾക്കുമുള്ള പ്രിഫിക്സ് നമുക്ക് വ്യക്തമാക്കാം defiപ്രിഫിക്സ് അറേ ഓപ്ഷൻ ഉപയോഗിച്ച് ഗ്രൂപ്പിനുള്ളിലെ നൈറ്റുകൾ Route Groups
.
ഉദാഹരണം web.php
Route::group(['prefix' => 'movie'], function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
ഇനിപ്പറയുന്ന URL-കളിൽ നിന്ന് ആക്സസ് ചെയ്യാൻ കഴിയുന്ന മൂന്ന് പാതകൾ കോഡിൽ അടങ്ങിയിരിക്കുന്നു:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
ഒരു ഗ്രൂപ്പിനുള്ളിലെ എല്ലാ റൂട്ടുകളിലേക്കും നമുക്ക് മിഡിൽവെയർ നൽകാം. മിഡിൽവെയർ ആയിരിക്കണം defiഗ്രൂപ്പ് സൃഷ്ടിക്കുന്നതിന് മുമ്പ് പൂർത്തിയാക്കി. ഇത് എങ്ങനെ ചെയ്യാമെന്ന് കാണാൻ, ഞങ്ങളുടെ ലേഖനം വായിക്കുക ലാറവെൽ മിഡിൽവെയർ ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു.
ഉദാഹരണം:
Route::middleware(['age'])->group( function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
രീതി name
എന്നതിന്റെ ഓരോ പേരിന്റെയും പ്രിഫിക്സ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു route
ഒരു നിർദ്ദിഷ്ട സ്ട്രിംഗ് ഉപയോഗിച്ച്. രീതിയിലാണ് name
, പ്രിഫിക്സിൽ ട്രെയിലിംഗ് പ്രതീകം ഉള്ള സ്ട്രിംഗ് നമുക്ക് വ്യക്തമാക്കേണ്ടതുണ്ട്.
ഉദാഹരണം web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
നാവിക മേഖല ഒരു യഥാർത്ഥ ആഗോള സാമ്പത്തിക ശക്തിയാണ്, അത് 150 ബില്യൺ വിപണിയിലേക്ക് നാവിഗേറ്റ് ചെയ്തു...
കഴിഞ്ഞ തിങ്കളാഴ്ച, ഫിനാൻഷ്യൽ ടൈംസ് ഓപ്പൺഎഐയുമായി ഒരു കരാർ പ്രഖ്യാപിച്ചു. FT അതിൻ്റെ ലോകോത്തര പത്രപ്രവർത്തനത്തിന് ലൈസൻസ് നൽകുന്നു…
ദശലക്ഷക്കണക്കിന് ആളുകൾ സ്ട്രീമിംഗ് സേവനങ്ങൾക്കായി പണമടയ്ക്കുന്നു, പ്രതിമാസ സബ്സ്ക്രിപ്ഷൻ ഫീസ് നൽകുന്നു. നിങ്ങൾ എന്നത് പൊതുവായ അഭിപ്രായമാണ്...
വീമിൻ്റെ Coveware സൈബർ കൊള്ളയടിക്കൽ സംഭവ പ്രതികരണ സേവനങ്ങൾ നൽകുന്നത് തുടരും. Coveware ഫോറൻസിക്സും പ്രതിവിധി കഴിവുകളും വാഗ്ദാനം ചെയ്യും…