cleaniquecoders/attendance

此包已被废弃,不再维护。未建议替代包。

自适应考勤解决方案

v1.0.1 2018-10-02 16:47 UTC

This package is not auto-updated.

Last update: 2023-12-03 07:03:31 UTC


README

Build Status Latest Stable Version Total Downloads License

关于您的包

这是一个自适应考勤包 - 允许开发人员与现有考勤系统及设备(如门禁卡、生物识别等)集成。

此包包含常见的考勤适配器

  1. Web 适配器 - 用于基于 Web 的考勤系统
  2. API 适配器 - 用于基于移动的考勤系统
  3. 控制台适配器 - 用于基于队列的考勤系统

有关自定义适配器的使用说明,请参阅下面的使用部分。

安装

  1. 要在您的 Laravel 项目中安装 cleaniquecoders/attendance,只需在终端运行 composer require 命令即可
$ composer require cleaniquecoders/attendance
  1. 然后在您的 config/app.php 中,将以下内容添加到 providers 数组中
CleaniqueCoders\Attendance\AttendanceServiceProvider::class,
  1. 在同一个 config/app.php 中,将以下内容添加到 aliases 数组中
'Attendance' => CleaniqueCoders\Attendance\AttendanceFacade::class,
  1. 安装包
$ php artisan attendance:install
  1. AttendanceTrait 设置到您的用户模型中。
<?php

namespace App;

use CleaniqueCoders\Attendance\Traits\AttendanceTrait;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable, AttendanceTrait;
...

使用

Artisan 命令

从控制台记录考勤

// log user with 1 as time in
$ php artisan attendance:log 1 1

// log user with 1 as time out
$ php artisan attendance:log 1 2

// log user with email hi@attendance.com as time in
$ php artisan attendance:log "hi@attendance.com" 1 "email"

// log user with email hi@attendance.com as time out
$ php artisan attendance:log "hi@attendance.com" 2 "email"

API

当运行 attendance:install 时,考勤的 API 路由将被添加到您的 routes/api.php 文件中。

作用域

要获取今天的所有条目,可以使用 todayEntries() 作用域。

\CleaniqueCoders\Attendance\Models\Attendance::todayEntries()->get();

基于一个或多个驱动程序。

\CleaniqueCoders\Attendance\Models\Attendance::todayEntries('web')->get();
\CleaniqueCoders\Attendance\Models\Attendance::todayEntries(['api', 'access-card'])->get();

自定义适配器

如果您想要与 Slack、Telegram 等进行自定义集成,可以创建自定义适配器。

$ php artisan make:attendance SlackAdapter --driver=slack

这将创建一个位于 app/Adapters/SlackAdapter.php 的类。

<?php 

namespace App\Adapters;

use CleaniqueCoders\Attendance\Models\AttendanceType;

class SlackAdapter extends BaseAdapter
{
	protected $driver = 'slack';

	public function timeIn()
	{
		// your implementation to determine user is time in
		$this->capture(AttendanceType::TIME_IN);
	}

	public function timeOut()
	{
		// your implementation to determine user is time out
		$this->capture(AttendanceType::TIME_OUT);
	}
}

创建后,您可能希望创建路由以接受您的应用程序中的 Slack webhook。以下是一个路由设置的示例。

Route::get('attendance/slack/time-in', function() {
	$user = \App\User::whereSlackId(request()->slack_id)->firstOrFail();
	(new \App\Adapters\SlackAdapter($user, now()))->timeIn();
})->name('attendance.slack.time-in');

Route::get('attendance/slack/time-out', function() {
	$user = \App\User::whereSlackId(request()->slack_id)->firstOrFail();
	(new \App\Adapters\SlackAdapter($user, now()))->timeOut();
})->name('attendance.slack.time-out');

测试

运行以下命令

$ vendor/bin/phpunit  --testdox --verbose

贡献

感谢您考虑为 cleaniquecoders/attendance 做贡献!

错误报告

为了鼓励积极的协作,强烈建议提交拉取请求,而不仅仅是错误报告。“错误报告”也可以以包含失败测试的拉取请求的形式发送。

然而,如果您提交错误报告,您的问题应包含标题和对问题的清晰描述。您还应包括尽可能多的相关信息和演示问题的代码示例。错误报告的目标是使您和其他人能够轻松地复制错误并开发修复方案。

请记住,错误报告是在希望有相同问题的人能够与您协作解决问题的情况下创建的。不要期望错误报告会自动看到任何活动或其他人会立即修复它。创建错误报告的目的是帮助您和其他人开始解决问题的道路。

代码风格

cleaniquecoders/attendance 遵循 PSR-2 代码标准和 PSR-4 自动加载标准。

您可以使用 PHP CS Fixer 来保持代码标准化。PHP CS Fixer 的配置文件位于 .php_cs

许可证

本软件包是开源软件,受 MIT 许可证许可。