laravel administrator 一款通用的后台插件(PHP框架扩展)
前几天我看了一下zend framework 2的一些官方文档,也找了一些例子,可惜所有的资料少之甚少。于是我就开始去找这国外用的比较流行的PHP框架laravel,希望能够找到其合适的例子,而且我本就打算写一套后台管理系统,却正好发现了其扩展的包。Laravel-Adminis
前几天我看了一下zend framework 2的一些官方文档,也找了一些例子,可惜所有的资料少之甚少。于是我就开始去找这国外用的比较流行的PHP框架laravel,希望能够找到其合适的例子,而且我本就打算写一套后台管理系统,却正好发现了其扩展的包。Laravel-Administrator后台扩展包,提供了基本上通用的界面以及数据操作的例子,我们再也不需要自己去找模板了,特别在这个html5开始盛行的时候,一步步苦苦摸索实在太费时费力。做过后台的朋友不妨看看,这可以使你的工作更快快速和方便。
1、安装composer
自从vim有统一的插件管理工具pathogen后,估摸着PHP的爱好者才想出了这么一个主意,统一的(依赖)管理器,开源插件进行统一管理也的确势在必行,不说废话了,首先看看怎么安装这个东西吧。
curl -s http:<span>//</span><span>getcomposer.org/installer| php && mv composer.phar /usr/sbin/composer</span>
2、创建你的laravel项目
一条命令就帮你搭建好了基本的架构,是不是很方便呢?
composer create-project laravel/laravel your-project-name <span>#</span><span>记得改成你的项目名称</span>
3、安装Laravel-Administrator包
cd your-project-name && vim composer.json <span>#</span><span>进入项目目录并编辑composer.json,把"frozennode/administrator": "dev-master"加入到"require"下</span>
以下为最终的配置:
<span>{ </span>"name": "laravel/laravel"<span>, </span>"description": "The Laravel Framework."<span>, </span>"keywords": ["framework", "laravel"<span>], </span>"license": "MIT"<span>, </span>"require"<span>: { </span>"laravel/framework": "4.2.*"<span>, </span>"frozennode/administrator": "dev-master"<span> }, </span>"autoload"<span>: { </span>"classmap"<span>: [ </span>"app/commands"<span>, </span>"app/controllers"<span>, </span>"app/models"<span>, </span>"app/database/migrations"<span>, </span>"app/database/seeds"<span>, </span>"app/tests/TestCase.php"<span> ] }, </span>"scripts"<span>: { </span>"post-install-cmd"<span>: [ </span>"php artisan clear-compiled"<span>, </span>"php artisan optimize"<span> ], </span>"post-update-cmd"<span>: [ </span>"php artisan clear-compiled"<span>, </span>"php artisan optimize"<span> ], </span>"post-create-project-cmd"<span>: [ </span>"php artisan key:generate"<span> ] }, </span>"config"<span>: { </span>"preferred-install": "dist"<span> }, </span>"minimum-stability": "stable"<span> }</span>
4、配置包加载
vim app/config/app.php <span>#</span><span>找到数组providers,并在最后加入'Frozennode\Administrator\AdministratorServiceProvider',</span>
以下为最终的配置:
<span>php </span><span>return</span> <span>array</span><span>( </span><span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'debug' => <span>true</span>, <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'url' => 'http://pfadmins.local.com', <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'timezone' => 'UTC', <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'locale' => 'en', <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'fallback_locale' => 'en', <span>/*</span><span> |-------------------------------------------------------------------------- | 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! | </span><span>*/</span> 'key' => '4g1RkrnrYg1UdkEHxUV3p8UBAlnTmWiZ', 'cipher' => MCRYPT_RIJNDAEL_128, <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'providers' => <span>array</span><span>( </span>'Illuminate\Foundation\Providers\ArtisanServiceProvider', 'Illuminate\Auth\AuthServiceProvider', 'Illuminate\Cache\CacheServiceProvider', 'Illuminate\Session\CommandsServiceProvider', 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider', 'Illuminate\Routing\ControllerServiceProvider', 'Illuminate\Cookie\CookieServiceProvider', 'Illuminate\Database\DatabaseServiceProvider', 'Illuminate\Encryption\EncryptionServiceProvider', 'Illuminate\Filesystem\FilesystemServiceProvider', 'Illuminate\Hashing\HashServiceProvider', 'Illuminate\Html\HtmlServiceProvider', 'Illuminate\Log\LogServiceProvider', 'Illuminate\Mail\MailServiceProvider', 'Illuminate\Database\MigrationServiceProvider', 'Illuminate\Pagination\PaginationServiceProvider', 'Illuminate\Queue\QueueServiceProvider', 'Illuminate\Redis\RedisServiceProvider', 'Illuminate\Remote\RemoteServiceProvider', 'Illuminate\Auth\Reminders\ReminderServiceProvider', 'Illuminate\Database\SeedServiceProvider', 'Illuminate\Session\SessionServiceProvider', 'Illuminate\Translation\TranslationServiceProvider', 'Illuminate\Validation\ValidationServiceProvider', 'Illuminate\View\ViewServiceProvider', 'Illuminate\Workbench\WorkbenchServiceProvider', 'Frozennode\Administrator\AdministratorServiceProvider',<span> )</span>, <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'manifest' => storage_path().'/meta', <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'aliases' => <span>array</span><span>( </span>'App' => 'Illuminate\Support\Facades\App', 'Artisan' => 'Illuminate\Support\Facades\Artisan', 'Auth' => 'Illuminate\Support\Facades\Auth', 'Blade' => 'Illuminate\Support\Facades\Blade', 'Cache' => 'Illuminate\Support\Facades\Cache', 'ClassLoader' => 'Illuminate\Support\ClassLoader', 'Config' => 'Illuminate\Support\Facades\Config', 'Controller' => 'Illuminate\Routing\Controller', 'Cookie' => 'Illuminate\Support\Facades\Cookie', 'Crypt' => 'Illuminate\Support\Facades\Crypt', 'DB' => 'Illuminate\Support\Facades\DB', 'Eloquent' => 'Illuminate\Database\Eloquent\Model', 'Event' => 'Illuminate\Support\Facades\Event', 'File' => 'Illuminate\Support\Facades\File', 'Form' => 'Illuminate\Support\Facades\Form', 'Hash' => 'Illuminate\Support\Facades\Hash', 'HTML' => 'Illuminate\Support\Facades\HTML', 'Input' => 'Illuminate\Support\Facades\Input', 'Lang' => 'Illuminate\Support\Facades\Lang', 'Log' => 'Illuminate\Support\Facades\Log', 'Mail' => 'Illuminate\Support\Facades\Mail', 'Paginator' => 'Illuminate\Support\Facades\Paginator', 'Password' => 'Illuminate\Support\Facades\Password', 'Queue' => 'Illuminate\Support\Facades\Queue', 'Redirect' => 'Illuminate\Support\Facades\Redirect', 'Redis' => 'Illuminate\Support\Facades\Redis', 'Request' => 'Illuminate\Support\Facades\Request', 'Response' => 'Illuminate\Support\Facades\Response', 'Route' => 'Illuminate\Support\Facades\Route', 'Schema' => 'Illuminate\Support\Facades\Schema', 'Seeder' => 'Illuminate\Database\Seeder', 'Session' => 'Illuminate\Support\Facades\Session', 'SoftDeletingTrait' => 'Illuminate\Database\Eloquent\SoftDeletingTrait', 'SSH' => 'Illuminate\Support\Facades\SSH', 'Str' => 'Illuminate\Support\Str', 'URL' => 'Illuminate\Support\Facades\URL', 'Validator' => 'Illuminate\Support\Facades\Validator', 'View' => 'Illuminate\Support\Facades\View',<span> )</span>,<span> );</span>
5、生成Laravel-Administrator配置
php artisan config:publish frozennode/administrator <span>#</span><span>生成配置</span> vim app/config/packages/frozennode/administrator/administrator.php <span>#</span><span>你可以编辑此文件配置后台参数</span>
6、配置Laravel-Administrator例子
如果没有示例我们也不知道如何开始,那么就让我们看看这个插件包所给出的例子吧。
cd ../ <span>#</span><span>退到工作目录</span> git clone https://github.com/FrozenNode/Laravel-Administrator <span>#</span><span>下载插件</span> cp Laravel-Administrator/examples/app/config/packages/frozennode/administrator/administrator.php your-project-name/app/config/packages/frozennode/administrator/<span> cp Laravel</span>-Administrator/examples/app/config/administrator your-project-name/app/config/ -<span>r cp Laravel</span>-Administrator/examples/app/models your-project-name/app/ -<span>r cp Laravel</span>-Administrator/examples/app/database/migrations/* your-project-name/app/database/migrations/<span> mkdir </span>-p your-project-name/public/packages/frozennode/<span>administrator cp Laravel</span>-Administrator/public/* your-project-name/public/packages/frozennode/administrator/ -<span>r<br></span>
<span>#</span><span>创建数据库</span> <span>#</span><span>首先根据你数据库的配置创建出你需要的数据,这里以mysql为例</span> cd your-project-name <span>#</span><span> 进入你的项目目录</span> vim app/config/database.php
以下为我的配置:
<span>php </span><span>return</span> <span>array</span><span>( </span><span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'fetch' => PDO::FETCH_CLASS, <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'default' => 'mysql', <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'connections' => <span>array</span><span>( </span>'sqlite' => <span>array</span><span>( </span>'driver' => 'sqlite', 'database' => __DIR__.'/../database/production.sqlite', 'prefix' => '',<span> )</span>, 'mysql' => <span>array</span><span>( </span>'driver' => 'mysql', 'host' => 'localhost', 'database' => 'pf_admindb', 'username' => 'root', 'password' => 'mysql', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '',<span> )</span>, 'pgsql' => <span>array</span><span>( </span>'driver' => 'pgsql', 'host' => 'localhost', 'database' => 'forge', 'username' => 'forge', 'password' => '', 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public',<span> )</span>, 'sqlsrv' => <span>array</span><span>( </span>'driver' => 'sqlsrv', 'host' => 'localhost', 'database' => 'database', 'username' => 'root', 'password' => '', 'prefix' => '',<span> )</span>,<span> )</span>, <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'migrations' => 'migrations', <span>/*</span><span> |-------------------------------------------------------------------------- | 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. | </span><span>*/</span> 'redis' => <span>array</span><span>( </span>'cluster' => <span>false</span>, 'default' => <span>array</span><span>( </span>'host' => '127.0.0.1', 'port' => 6379, 'database' => 0,<span> )</span>,<span> )</span>,<span> );</span>
保证数据库用户、密码、IP、端口正确的情况下,还需保证你的数据库存在后再执行以下命令。
php artisan migrate:install && php artisan migrate <span>#</span><span> 创建数据库及表</span> <span>#</span><span>以下是创建生成数据库表的一些命令,了解即可</span> <span>#</span><span>php artisan migrate:make create_directors_table</span> <span>#</span><span>php artisan migrate:make create_films_table</span> <span>#</span><span>php artisan migrate:make create_box_office</span> <span>#</span><span>php artisan migrate:make create_actors</span> <span>#</span><span>php artisan migrate:make create_actors_films</span> <span>#</span><span>php artisan migrate:make create_theaters</span> <span>#</span><span>php artisan migrate:make create_films_theaters</span>
7、配置你的网站
上次说到配置zend framework 2的时候,特别讲到这个配置,而laravel配置是一模一样的。
<span> server { listen </span>80<span>; server_name zf2.local.com; </span><span>#</span><span>域名</span> root /data/www/zf2/public; <span>#</span><span>你的网站目录,即项目目录记得加上public,否则访问方法不同</span> <span> index index.php; </span><span>#</span><span>charset utf-8;</span> location ~* \.(js|ico|gif|jpg|png|css|jpeg|swf)$<span> { access_log off; expires 2d; } location </span>/<span> { </span><span>if</span> (!<span>-f</span> <span>$request_filename</span><span>) { rewrite ^(.</span>+)$ /index.php?<span>$1</span>&<span> last; } } location ~ \.php</span>$<span> { </span><span>#</span><span>root /var/www/html/public;</span> fastcgi_pass 127.0.0.1:9000; <span>#</span><span>如果你的php-fpm的监听端口不是这个,请设置</span> <span> fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME </span><span>$document_root$fastcgi_script_name</span><span>; include fastcgi_params; } </span><span>#</span><span> deny access to .htaccess files, if Apache’s document root</span> <span>#</span><span> concurs with nginx’s one</span> <span># </span> location ~ /<span>\.ht { deny all; } }</span>
8、开始浏览你的网站
将服务器IP与你的域名绑定,开始浏览,我这里的地址为http://pfadmins.local.com/admin。一定要加上admin,因为后台的url就在admin,当然你可以配置。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP和Flutter是移动端开发的流行技术。Flutter胜在跨平台能力、性能和用户界面,适合需要高性能、跨平台和自定义UI的应用程序。PHP则适用于性能较低、不跨平台的服务器端应用程序。

使用ORM可简化PHP中的数据库操作,它将对象映射到关系数据库中。Laravel中的EloquentORM允许使用面向对象的语法与数据库交互,可通过定义模型类、使用Eloquent方法或在实战中构建博客系统等方式来使用ORM。

Laravel - Artisan 命令 - Laravel 5.7 提供了处理和测试新命令的新方法。它包括测试 artisan 命令的新功能,下面提到了演示?

PHP单元测试工具分析:PHPUnit:适用于大型项目,提供全面功能,易于安装,但可能冗长且速度较慢。PHPUnitWrapper:适合小型项目,易于使用,针对Lumen/Laravel优化,但功能受限,不提供代码覆盖率分析,社区支持有限。

Laravel9和CodeIgniter4的最新版本提供了更新的特性和改进。Laravel9采用MVC架构,提供数据库迁移、身份验证和模板引擎等功能。CodeIgniter4采用HMVC架构,提供路由、ORM和缓存。在性能方面,Laravel9的基于服务提供者设计模式和CodeIgniter4的轻量级框架使其具有出色的性能。在实际应用中,Laravel9适用于需要灵活性和强大功能的复杂项目,而CodeIgniter4适用于快速开发和小型应用程序。

比较Laravel和CodeIgniter的数据处理能力:ORM:Laravel使用EloquentORM,提供类对象关系映射,而CodeIgniter使用ActiveRecord,将数据库模型表示为PHP类的子类。查询构建器:Laravel具有灵活的链式查询API,而CodeIgniter的查询构建器更简单,基于数组。数据验证:Laravel提供了一个Validator类,支持自定义验证规则,而CodeIgniter的验证功能内置较少,需要手动编码自定义规则。实战案例:用户注册示例展示了Lar

PHP单元和集成测试指南单元测试:关注单个代码单元或函数,使用PHPUnit创建测试用例类进行验证。集成测试:关注多个代码单元协同工作的情况,使用PHPUnit的setUp()和tearDown()方法设置和清理测试环境。实战案例:使用PHPUnit在Laravel应用中进行单元和集成测试,包括创建数据库、启动服务器以及编写测试代码。

在选择大型项目框架时,Laravel和CodeIgniter各有优势。Laravel针对企业级应用程序而设计,提供模块化设计、依赖项注入和强大的功能集。CodeIgniter是一款轻量级框架,更适合小型到中型项目,强调速度和易用性。对于具有复杂需求和大量用户的大型项目,Laravel的强大功能和可扩展性更合适。而对于简单项目或资源有限的情况下,CodeIgniter的轻量级和快速开发能力则更为理想。
