承接 lar/ljs 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lar/ljs

Composer 安装命令:

composer require lar/ljs

包简介

Laravel Application JS core

README 文档

README

Execute modes

Mode "exec"

/**
 * Method for one or multiple call.
 * 
 * @param data {string|Array|Object} executed data
 * @param params {array|any} executed params for one call
 * @param storage_data {Object} Executor storage (this.storage)
 * @returns {null}
 */
ljs.exec(data, params = null, storage_data = {});

/**
 * Execute helper.
 * 
 * @param command {string|Array|Object} executed data
 * @param params {any} executed params for one call
 * @returns {*}
 */
exec(command, ...params);

/**
 * String Prototypes
 */
"toast:error".exec('Error message');
"toast:error".exec('Error message', 'Error');

//Send param to executor
"message".to('toast:success');

/**
 * Array Prototypes
 */
//Map executors for params
["toast::success","console.log"].exec('New message');
["toast::success","console.log"].exec('message text', 'New message');

//To map. Each element of the array as a new parameter for the next call.
["You have 5 new followers","New message from user"].tom('toast:success');
[["5 new", "Followers"],["message text","Message"]].tom('toast:success');

//Parameters to pass to the function.
["message", "title"].to('toast:success'); 
//same 
[["message", "title"]].tom('toast:success');

Examples

One execute
ljs.exec('toast::success', 'User successful auth!');
ljs.exec('toast::success', ['Success auth!', 'User']);
// or
exec('toast::success', 'User success auth!');
exec('toast::success', 'Success auth!', 'User');
Multiple execute
ljs.exec({
    'toast::success': 'User successful auth!',
    'toast::warning': ['Needle enter a profile data!', 'Profile']
});
// or
exec({...})

Mode "call" single string line

/**
 * Call mode
 * 
 * @param command {string} executed data
 * @param storage
 * @returns {undefined|*}
 */
ljs.call(command, storage = {});

/**
 * Call helper
 * 
 * @param command {string} executed data
 * @param storage
 * @returns {*}
 */
call(command, storage = {});

/**
 * String Prototypes
 */
"toast:success(Success auth)".call();

/**
 * Array Prototypes
 */
["toast:success(Success auth)", "toast:warning(Enter a phone number, Profile)"].call()

Call single line syntax:

toast:error(Some error text, Error title, {"progressBar": true})
// or
location.pathname

In brackets is the body for the parameters. Separate parameters with commas, be careful not to use the , symbol in the parameters only if you need to add the following parameter.

Examples

ljs.call("toast:success(Success auth)");
// or 
call("toast:success(Success auth)");

Mode "parse" single string line

/**
 * String parse
 *
 * @param str
 * @param storage
 * @returns {*}
 */
ljs.parse(str, storage = {});

/**
 * String Prototypes
 */
"My location is >>location.href".parse();

/**
 * Array Prototypes
 */
["toast:success(Success auth)", "toast:warning(Enter a phone number, Profile)"].call()

To indicate a call to a string format function, you must specify the input character >> before calling it.

Executor extends

1 - Create you js executor file 'resources/js/executors/Root.js'

'use strict';

class Root extends Executor {

    /**
     * For call without method.
     * (don't required)
     * 
     * @param text
     * @public
     */
    __invoke (text = "My executor") {
        
        //this.storage - Executor storage

        text.exec('toast:success');
        
        return text;
    }
    
    /**
     * Magic method "How PHP".
     * (don't required)
     * 
     * @param $name
     * @param $arguments
     * @public
     */
    __call ($name, $arguments) {
        //
    }

    /**
     * Class name for call.
     * If don't set, name becomes equal to class name.
     * (don't required)
     *
     * @returns {null|string}
     * @private
     */
    static __name () {

        return "root";
    }

    /**
     * Array of aliases from object.
     * (don't required)
     *
     * @returns {{}}
     */
    static __aliases () {

        return [];
    }

    /**
     * Individual method name getter.
     * (don't required)
     *
     * @returns {string}
     * @private
     */
    static __individual_method () {

        return "__invoke";
    }
}

module.exports = Message;

2 - Inject extend in LJS

ljs.regExec(require('./executors/Root'));

3 - Call a new extension

call('root');
call('root', 'I Love Shaurma');
"I created >>root".parse();

Pipelines

  1. && - Send globally passed parameters to the next call.
  2. & - Send undefined to the next call.
  3. # - Send null to the next call.
  4. * - Send the results of the previous execution to the next call.
  5. > - Send global parameters along with previous results.
  6. [0-9]> - Send the result number from the beginning of the line.
  7. [0-9]>> - Send the result number from the end of the line.

Example

"location.origin & location.pathname > toast".exec();
// or
"document.title > confirm".exec();

Default LJS Executors

Alert system

Extend documentation https://github.com/CodeSeven/toastr

errors [msg, msg,...]
message [msg]

Show success message:

toast:success [message]
toast:success [message, title = null, options = {}]
toast:success [{'text': 'message text', 'title': 'message title', 'options': {}}]
//or
toast::success //public method

Show error message:

toast:error [message]
toast:error [message, title = null, options = {}]
toast:error [{'text': 'message text', 'title': 'message title', 'options': {}}]
//or
toast::error //public method

Show info message:

toast:info [message]
toast:info [message, title = null, options = {}]
toast:info [{'text': 'message text', 'title': 'message title', 'options': {}}]
//or
toast::info //public method

Show warning message:

toast:warning [message]
toast:warning [message, title = null, options = {}]
toast:warning [{'text': 'message text', 'title': 'message title', 'options': {}}]
//or
toast::warning //public method

Show toast message:

toast [message]
toast [message, title = null, options = {}, type = "info"]
toast [{'text': 'message text', 'title': 'message title', 'options': {}}]
Examples
ljs.exec('errors', ['error1', 'error2']);
ljs.exec('message', 'message text');
ljs.exec('toast:success', 'success static message');
ljs.exec('toast::success', 'success message');
ljs.exec('toast::success', ['message', 'title', {'progressBar': true}]);
ljs.exec('toast::success', {'text': 'message', 'title': 'title', 'options': {'progressBar': true}});

Document

Public methods

LJS Event dispatch:

doc::dispatch_event [event]

Set document title

doc::title [title]

Set document location:

doc::location [location]
doc::set_location [location]

Reload document:

doc::reload [null]

JQuery decorator

Equivalent to $('$element').show()

jq::show [$element]

Equivalent to $('$element').hide()

jq::hide [$element]

Equivalent to $('$element').html($data)

jq::html [$element, $data = '']

Equivalent to $('$element').replaceWith($data)

jq::replace [$element, $data = '']

Equivalent to $('$element').append($data)

jq::append [$element, $data = '']

Equivalent to $('$element').submit()

jq::submit [$element]

Set attributes

jq::attribute [$element, $attribute_name, $attribute_value]
jq::attribute [$element, {'attribute_name': 'attribute_value',...}]

//Or on with element
jq::attribute [$attribute_name, $attribute_value]
jq::attribute [{'attribute_name': 'attribute_value',...}]

Global eval:

jq::eval [data]
jq::globalEval [data]

Alert Swal

Alert success

swal::success [text]
swal::success [title, text]
alert::success [text]
alert::success [title, text]

Alert warning

swal::warning [text]
swal::warning [title, text]
alert::warning [text]
alert::warning [title, text]

Alert error

swal::error [text]
swal::error [title, text]
alert::error [text]
alert::error [title, text]

Alert info

swal [text]
swal [title, text]
alert [text]
alert [title, text]
swal::info [text]
swal::info [title, text]
alert::info [text]
alert::info [title, text]

Alert question

swal::question [text]
swal::question [title, text]
alert::question [text]
alert::question [title, text]

Timer

Create timeout timer

timer::out {1000: ExecutedData, 2000: ExecutedData,...}
1000 - ms
2000 - ms

Create timer interval

timer::interval [name, ExecutedData, ms = 1000]

Clear timer interval

timer::clear [name]
Examples
//Create interval in 2 second and clear him by timeout 6 sec
ljs.exec({
    'timer::interval': [
        'my_timer', {'toast::success': 'Timer tik!'}, 2000
    ], 
    'timer::out': {
        6000: {'timer::clear': 'my_timer'}
    }
});

Global variables

Set variable

var::set [path, value, save = false]

Merge global variables

var::merge [{path: value,...}, save = false]

Set and save variable (save on localstorage)

var::save [path, value]

Only forgot variable (delete from localstorage)

var::forgot [path, value]

Unset variable

var::unset [path]

Get variable

var::get [path = null]

Get variable names (keys)

var::keys [null]

lar/ljs 适用场景与选型建议

lar/ljs 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 60.99k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 04 月 24 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「JS」 「application」 「laravel」 「core」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 lar/ljs 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 lar/ljs 我们能提供哪些服务?
定制开发 / 二次开发

基于 lar/ljs 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 60.99k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 8
  • 依赖项目数: 4
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 1
  • 开发语言: JavaScript

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-04-24