سيكون عليك إعادة كتابة وحدة Hash, قم بإنشاء مجلد app / libraries وأضفه إلى autoload.classmap الخاص composer.json
"autoload": {
"classmap": [
"app/libraries"
]
},
ستقوم بإنشاء كلاس (class) ولكين اسمه Sha1Hash مع تطبيق
Illuminate\Hashing\HasherInterface
سنضع بداخله ثلاث دوال وهي
make, check and needsRehash
فيكون كالتالي
<?php
class SHA1Hash implements Illuminate\Hashing\HasherInterface {
public function make($value, array $options = array()) {
return hash('sha1', $value);
}
public function check($value, $hashedValue, array $options = array()) {
return $this->make($value) === $hashedValue;
}
public function needsRehash($hashedValue, array $options = array()) {
return false;
}
}
?>
الآن بعد أن انتهينا من صنع ملف Sha1Hash.php, نريد استخدامه افتراضيًا بواسطة Laravel. للقيام بذلك, سننشئ Sha1HashServiceProvider, في المسار
<project_folder\app\libraries
ونمدد Illuminate \ Support \ ServiceProvider , ونقوم بتسجيله hash component فيصبح الملف كالتالي
<?php
class Sha1HashServiceProvider extends Illuminate\Support\ServiceProvider {
public function register() {
$this->app['hash'] = $this->app->share(function () {
return new SHA1Hash();
});
}
public function provides() {
return array('hash');
}
}
?>
في المسار التالي
app/config/app.php
نضيف تحت providers التالي
'Sha1HashServiceProvider'
و إزالة
'Illuminate\Hashing\HashServiceProvider'