zoukankan      html  css  js  c++  java
  • laravel administrator 一款通用的后台插件(PHP框架扩展)

    前几天我看了一下zend framework 2的一些官方文档,也找了一些例子,可惜所有的资料少之甚少。于是我就开始去找这国外用的比较流行的PHP框架laravel,希望能够找到其合适的例子,而且我本就打算写一套后台管理系统,却正好发现了其扩展的包。Laravel-Administrator后台扩展包,提供了基本上通用的界面以及数据操作的例子,我们再也不需要自己去找模板了,特别在这个html5开始盛行的时候,一步步苦苦摸索实在太费时费力。做过后台的朋友不妨看看,这可以使你的工作更快快速和方便。

    1、安装composer

      自从vim有统一的插件管理工具pathogen后,估摸着PHP的爱好者才想出了这么一个主意,统一的(依赖)管理器,开源插件进行统一管理也的确势在必行,不说废话了,首先看看怎么安装这个东西吧。

    curl -s http://getcomposer.org/installer| php && mv composer.phar /usr/sbin/composer

    2、创建你的laravel项目

      一条命令就帮你搭建好了基本的架构,是不是很方便呢?

    composer create-project laravel/laravel your-project-name #记得改成你的项目名称

    3、安装Laravel-Administrator包 

    cd your-project-name && vim composer.json #进入项目目录并编辑composer.json,把"frozennode/administrator": "dev-master"加入到"require"下

      以下为最终的配置:

    {
        "name": "laravel/laravel",
        "description": "The Laravel Framework.",
        "keywords": ["framework", "laravel"],
        "license": "MIT",
        "require": {
            "laravel/framework": "4.2.*",
            "frozennode/administrator": "dev-master"
        },
        "autoload": {
            "classmap": [
                "app/commands",
                "app/controllers",
                "app/models",
                "app/database/migrations",
                "app/database/seeds",
                "app/tests/TestCase.php"
            ]
        },
        "scripts": {
            "post-install-cmd": [
                "php artisan clear-compiled",
                "php artisan optimize"
            ],
            "post-update-cmd": [
                "php artisan clear-compiled",
                "php artisan optimize"
            ],
            "post-create-project-cmd": [
                "php artisan key:generate"
            ]
        },
        "config": {
            "preferred-install": "dist"
        },
        "minimum-stability": "stable"
    }

    4、配置包加载

    vim app/config/app.php #找到数组providers,并在最后加入'FrozennodeAdministratorAdministratorServiceProvider',

      以下为最终的配置:

    <?php
    
    return array(
    
        /*
        |--------------------------------------------------------------------------
        | Application Debug Mode
        |--------------------------------------------------------------------------
        |
        | When your application is in debug mode, detailed error messages with
        | stack traces will be shown on every error that occurs within your
        | application. If disabled, a simple generic error page is shown.
        |
        */
    
        'debug' => true,
    
        /*
        |--------------------------------------------------------------------------
        | Application URL
        |--------------------------------------------------------------------------
        |
        | This URL is used by the console to properly generate URLs when using
        | the Artisan command line tool. You should set this to the root of
        | your application so that it is used when running Artisan tasks.
        |
        */
    
        'url' => 'http://pfadmins.local.com',
    
        /*
        |--------------------------------------------------------------------------
        | Application Timezone
        |--------------------------------------------------------------------------
        |
        | Here you may specify the default timezone for your application, which
        | will be used by the PHP date and date-time functions. We have gone
        | ahead and set this to a sensible default for you out of the box.
        |
        */
    
        'timezone' => 'UTC',
    
        /*
        |--------------------------------------------------------------------------
        | Application Locale Configuration
        |--------------------------------------------------------------------------
        |
        | The application locale determines the default locale that will be used
        | by the translation service provider. You are free to set this value
        | to any of the locales which will be supported by the application.
        |
        */
    
        'locale' => 'en',
    
        /*
        |--------------------------------------------------------------------------
        | Application Fallback Locale
        |--------------------------------------------------------------------------
        |
        | The fallback locale determines the locale to use when the current one
        | is not available. You may change the value to correspond to any of
        | the language folders that are provided through your application.
        |
        */
    
        'fallback_locale' => 'en',
    
        /*
        |--------------------------------------------------------------------------
        | Encryption Key
        |--------------------------------------------------------------------------
        |
        | This key is used by the Illuminate encrypter service and should be set
        | to a random, 32 character string, otherwise these encrypted strings
        | will not be safe. Please do this before deploying an application!
        |
        */
    
        'key' => '4g1RkrnrYg1UdkEHxUV3p8UBAlnTmWiZ',
    
        'cipher' => MCRYPT_RIJNDAEL_128,
    
        /*
        |--------------------------------------------------------------------------
        | Autoloaded Service Providers
        |--------------------------------------------------------------------------
        |
        | The service providers listed here will be automatically loaded on the
        | request to your application. Feel free to add your own services to
        | this array to grant expanded functionality to your applications.
        |
        */
    
        'providers' => array(
    
            'IlluminateFoundationProvidersArtisanServiceProvider',
            'IlluminateAuthAuthServiceProvider',
            'IlluminateCacheCacheServiceProvider',
            'IlluminateSessionCommandsServiceProvider',
            'IlluminateFoundationProvidersConsoleSupportServiceProvider',
            'IlluminateRoutingControllerServiceProvider',
            'IlluminateCookieCookieServiceProvider',
            'IlluminateDatabaseDatabaseServiceProvider',
            'IlluminateEncryptionEncryptionServiceProvider',
            'IlluminateFilesystemFilesystemServiceProvider',
            'IlluminateHashingHashServiceProvider',
            'IlluminateHtmlHtmlServiceProvider',
            'IlluminateLogLogServiceProvider',
            'IlluminateMailMailServiceProvider',
            'IlluminateDatabaseMigrationServiceProvider',
            'IlluminatePaginationPaginationServiceProvider',
            'IlluminateQueueQueueServiceProvider',
            'IlluminateRedisRedisServiceProvider',
            'IlluminateRemoteRemoteServiceProvider',
            'IlluminateAuthRemindersReminderServiceProvider',
            'IlluminateDatabaseSeedServiceProvider',
            'IlluminateSessionSessionServiceProvider',
            'IlluminateTranslationTranslationServiceProvider',
            'IlluminateValidationValidationServiceProvider',
            'IlluminateViewViewServiceProvider',
            'IlluminateWorkbenchWorkbenchServiceProvider',
            'FrozennodeAdministratorAdministratorServiceProvider',
    
        ),
    
        /*
        |--------------------------------------------------------------------------
        | Service Provider Manifest
        |--------------------------------------------------------------------------
        |
        | The service provider manifest is used by Laravel to lazy load service
        | providers which are not needed for each request, as well to keep a
        | list of all of the services. Here, you may set its storage spot.
        |
        */
    
        'manifest' => storage_path().'/meta',
    
        /*
        |--------------------------------------------------------------------------
        | Class Aliases
        |--------------------------------------------------------------------------
        |
        | This array of class aliases will be registered when this application
        | is started. However, feel free to register as many as you wish as
        | the aliases are "lazy" loaded so they don't hinder performance.
        |
        */
    
        'aliases' => array(
    
            'App'             => 'IlluminateSupportFacadesApp',
            'Artisan'         => 'IlluminateSupportFacadesArtisan',
            'Auth'            => 'IlluminateSupportFacadesAuth',
            'Blade'           => 'IlluminateSupportFacadesBlade',
            'Cache'           => 'IlluminateSupportFacadesCache',
            'ClassLoader'     => 'IlluminateSupportClassLoader',
            'Config'          => 'IlluminateSupportFacadesConfig',
            'Controller'      => 'IlluminateRoutingController',
            'Cookie'          => 'IlluminateSupportFacadesCookie',
            'Crypt'           => 'IlluminateSupportFacadesCrypt',
            'DB'              => 'IlluminateSupportFacadesDB',
            'Eloquent'        => 'IlluminateDatabaseEloquentModel',
            'Event'           => 'IlluminateSupportFacadesEvent',
            'File'            => 'IlluminateSupportFacadesFile',
            'Form'            => 'IlluminateSupportFacadesForm',
            'Hash'            => 'IlluminateSupportFacadesHash',
            'HTML'            => 'IlluminateSupportFacadesHTML',
            'Input'           => 'IlluminateSupportFacadesInput',
            'Lang'            => 'IlluminateSupportFacadesLang',
            'Log'             => 'IlluminateSupportFacadesLog',
            'Mail'            => 'IlluminateSupportFacadesMail',
            'Paginator'       => 'IlluminateSupportFacadesPaginator',
            'Password'        => 'IlluminateSupportFacadesPassword',
            'Queue'           => 'IlluminateSupportFacadesQueue',
            'Redirect'        => 'IlluminateSupportFacadesRedirect',
            'Redis'           => 'IlluminateSupportFacadesRedis',
            'Request'         => 'IlluminateSupportFacadesRequest',
            'Response'        => 'IlluminateSupportFacadesResponse',
            'Route'           => 'IlluminateSupportFacadesRoute',
            'Schema'          => 'IlluminateSupportFacadesSchema',
            'Seeder'          => 'IlluminateDatabaseSeeder',
            'Session'         => 'IlluminateSupportFacadesSession',
            'SoftDeletingTrait' => 'IlluminateDatabaseEloquentSoftDeletingTrait',
            'SSH'             => 'IlluminateSupportFacadesSSH',
            'Str'             => 'IlluminateSupportStr',
            'URL'             => 'IlluminateSupportFacadesURL',
            'Validator'       => 'IlluminateSupportFacadesValidator',
            'View'            => 'IlluminateSupportFacadesView',
    
        ),
    
    );

    5、生成Laravel-Administrator配置

      php artisan config:publish frozennode/administrator #生成配置
      vim app/config/packages/frozennode/administrator/administrator.php #你可以编辑此文件配置后台参数

    6、配置Laravel-Administrator例子

      如果没有示例我们也不知道如何开始,那么就让我们看看这个插件包所给出的例子吧。

      cd ../ #退到工作目录
      git clone https://github.com/FrozenNode/Laravel-Administrator #下载插件
      cp Laravel-Administrator/examples/app/config/packages/frozennode/administrator/administrator.php your-project-name/app/config/packages/frozennode/administrator/
      cp Laravel-Administrator/examples/app/config/administrator your-project-name/app/config/ -r
      cp Laravel-Administrator/examples/app/models your-project-name/app/ -r
      cp Laravel-Administrator/examples/app/database/migrations/* your-project-name/app/database/migrations/
      mkdir -p your-project-name/public/packages/frozennode/administrator
      cp Laravel-Administrator/public/* your-project-name/public/packages/frozennode/administrator/ -r
      #创建数据库
      #首先根据你数据库的配置创建出你需要的数据,这里以mysql为例
      cd your-project-name # 进入你的项目目录
      vim app/config/database.php

      以下为我的配置:

    <?php
    
    return array(
    
        /*
        |--------------------------------------------------------------------------
        | PDO Fetch Style
        |--------------------------------------------------------------------------
        |
        | By default, database results will be returned as instances of the PHP
        | stdClass object; however, you may desire to retrieve records in an
        | array format for simplicity. Here you can tweak the fetch style.
        |
        */
    
        'fetch' => PDO::FETCH_CLASS,
    
        /*
        |--------------------------------------------------------------------------
        | Default Database Connection Name
        |--------------------------------------------------------------------------
        |
        | Here you may specify which of the database connections below you wish
        | to use as your default connection for all database work. Of course
        | you may use many connections at once using the Database library.
        |
        */
    
        'default' => 'mysql',
    
        /*
        |--------------------------------------------------------------------------
        | Database Connections
        |--------------------------------------------------------------------------
        |
        | Here are each of the database connections setup for your application.
        | Of course, examples of configuring each database platform that is
        | supported by Laravel is shown below to make development simple.
        |
        |
        | All database work in Laravel is done through the PHP PDO facilities
        | so make sure you have the driver for your particular database of
        | choice installed on your machine before you begin development.
        |
        */
    
        'connections' => array(
    
            'sqlite' => array(
                'driver'   => 'sqlite',
                'database' => __DIR__.'/../database/production.sqlite',
                'prefix'   => '',
            ),
    
            'mysql' => array(
                'driver'    => 'mysql',
                'host'      => 'localhost',
                'database'  => 'pf_admindb',
                'username'  => 'root',
                'password'  => 'mysql',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            ),
    
            'pgsql' => array(
                'driver'   => 'pgsql',
                'host'     => 'localhost',
                'database' => 'forge',
                'username' => 'forge',
                'password' => '',
                'charset'  => 'utf8',
                'prefix'   => '',
                'schema'   => 'public',
            ),
    
            'sqlsrv' => array(
                'driver'   => 'sqlsrv',
                'host'     => 'localhost',
                'database' => 'database',
                'username' => 'root',
                'password' => '',
                'prefix'   => '',
            ),
    
        ),
    
        /*
        |--------------------------------------------------------------------------
        | Migration Repository Table
        |--------------------------------------------------------------------------
        |
        | This table keeps track of all the migrations that have already run for
        | your application. Using this information, we can determine which of
        | the migrations on disk haven't actually been run in the database.
        |
        */
    
        'migrations' => 'migrations',
    
        /*
        |--------------------------------------------------------------------------
        | Redis Databases
        |--------------------------------------------------------------------------
        |
        | Redis is an open source, fast, and advanced key-value store that also
        | provides a richer set of commands than a typical key-value systems
        | such as APC or Memcached. Laravel makes it easy to dig right in.
        |
        */
    
        'redis' => array(
    
            'cluster' => false,
    
            'default' => array(
                'host'     => '127.0.0.1',
                'port'     => 6379,
                'database' => 0,
            ),
    
        ),
    
    );

      保证数据库用户、密码、IP、端口正确的情况下,还需保证你的数据库存在后再执行以下命令。

      php artisan migrate:install && php artisan migrate # 创建数据库及表
      #以下是创建生成数据库表的一些命令,了解即可
      #php artisan migrate:make create_directors_table
      #php artisan migrate:make create_films_table
      #php artisan migrate:make create_box_office
      #php artisan migrate:make create_actors
      #php artisan migrate:make create_actors_films
      #php artisan migrate:make create_theaters
      #php artisan migrate:make create_films_theaters

    7、配置你的网站

      上次说到配置zend framework 2的时候,特别讲到这个配置,而laravel配置是一模一样的。

      server {
        listen 80;
        server_name zf2.local.com; #域名
        root /data/www/zf2/public; #你的网站目录,即项目目录记得加上public,否则访问方法不同
        index index.php;
        #charset utf-8;
        location ~* .(js|ico|gif|jpg|png|css|jpeg|swf)$ {
          access_log off;
          expires 2d;
        }
    
        location / {
          if (!-f $request_filename) {
            rewrite ^(.+)$ /index.php?$1& last;
          }
        }
      
        location ~ .php$ {
          #root /var/www/html/public;
          fastcgi_pass 127.0.0.1:9000; #如果你的php-fpm的监听端口不是这个,请设置
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
        }
    
        # deny access to .htaccess files, if Apache’s document root
        # concurs with nginx’s one
        #
        location ~ /.ht {
          deny all;
        }
      }

    8、开始浏览你的网站

      将服务器IP与你的域名绑定,开始浏览,我这里的地址为http://pfadmins.local.com/admin。一定要加上admin,因为后台的url就在admin,当然你可以配置。

  • 相关阅读:
    Android之普通对话框
    Android之TelephonyManager类的使用案例
    Android之快捷方式一——通过应用程序创建快捷方式
    Android之手机电池电量应用
    Android之TelephonyManager类的方法详解
    Android之菜单二——上下文菜单
    jpa一对多映射案例
    Android之桌面组件App Widget初探
    Android之列表对话框
    Android之快捷方式二——向Launcher添加快捷方式
  • 原文地址:https://www.cnblogs.com/lianyue/p/3951735.html
Copyright © 2011-2022 走看看