互联网上见到的多数网站都有一个你看不见的更强大的管理后台支持,比如一个新闻网站的管理后台一定有新闻编辑、发布、审核、管理等,一个论坛网站的管理后台一定有用户管理、板块管理、帖子审核等。这一节我们见识一下php框架的真正魅力:数行代码实现的强大管理后台

请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

sonata介绍

sonata扩展是symfony2众多扩展中应用最广泛的扩展之一,它的主要功能是帮你建立一个强大的管理后台,除此之外还有很多附加功能你可以深入挖掘,官方文档在https://sonata-project.org/bundles/admin/2-3/doc/index.html

composer扩展管理工具

为了安装symfony2的扩展,我们需要一个composer工具,它的安装方法(参考https://getcomposer.org/download/,以下命令如若失效,请以官方最新文档为准)为连续执行以下命令:

[root@centos7vm ~]# php -r "readfile('https://getcomposer.org/installer');" > composer-setup.php
[root@centos7vm ~]# php -r "if (hash_file('SHA384', 'composer-setup.php') === '7228c001f88bee97506740ef0888240bd8a760b046ee16db8f4095c0d8d525f2367663f22a46b48d072c816e7fe19959') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
[root@centos7vm ~]# php composer-setup.php
[root@centos7vm ~]# php -r "unlink('composer-setup.php');"

然后你会发现当前目录下有一个composer.phar文件,我们把它移动到/usr/local/bin下并重命名:

[root@centos7vm ~]# mv composer.phar /usr/local/bin/composer

ok,安装完成,执行

[root@centos7vm ~]# composer

看下是否输出帮助信息

安装sonata-admin

先看一下工程目录下的composer.json这个文件,这里面记录了当前工程都依赖哪些扩展包及其版本信息,这个文件一般我们不去编辑,当用composer更新扩展包时会自动更新这个文件

执行:

[root@centos7vm mywebsite]# composer require sonata-project/admin-bundle "2.3.*"

安装sonata的admin-bundle,因为admin-bundle会依赖一些其他bundle,所以安装过程可能会比较慢,需要耐心等待,当输出有:

 [OK] All assets were successfully installed.

说明安装完成

为了让admin-bundle能操作我们的数据库,还需要安装doctrine-orm-admin-bundle,执行:

[root@centos7vm mywebsite]# composer require sonata-project/doctrine-orm-admin-bundle "2.3.*"

安装了sonata扩展,相当于往vendor目录里拷贝了一批文件,但实际上我们还没有真正使用上,如果要使用起来,需要修改app/AppKernel.php把要使用的组件注册进来才能生效(所有的symfony2组件的安装都需要这个过程),修改app/AppKernel.php中的registerBundles()函数,在$bundles = array(...最后添加:

            new Sonata\CoreBundle\SonataCoreBundle(),new Sonata\BlockBundle\SonataBlockBundle(),new Knp\Bundle\MenuBundle\KnpMenuBundle(),new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),new Sonata\AdminBundle\SonataAdminBundle(),

注:如果某个bundle已经注册过,则不需要重复注册

配置sonata-admin

sonata-admin的接口都是基于SonataBlockBundle,按block组织在一起的,所以必须先告诉blockbundle,sonata-admin这个block的存在,所以修改app/config/config.yml

添加如下配置(注意缩进):

sonata_block:default_contexts: [cms]blocks:# enable the SonataAdminBundle blocksonata.admin.block.admin_list:contexts: [admin]

block配置完还需要给admin-bundle指定路由,这样才能通过url访问,admin-bundle是有自己的一套路由配置的,我们只需要加载进来即可,修改app/config/routing.yml,添加如下内容:

admin_area:resource: "@SonataAdminBundle/Resources/config/routing/sonata_admin.xml"prefix: /admin

OK,清缓存:

[root@centos7vm mywebsite]# php app/console cache:clear
[root@centos7vm mywebsite]# php app/console assets:install

访问http://172.16.142.130/app_dev.php/admin看看(这里的172.16.142.130是我的虚拟机ip,需要换成你的ip,另外如果访问不了可以尝试手工清缓存rm -rf app/cache/*),效果如下:

请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

创建BlogPost的后台管理

创建src/AppBundle/Admin/BlogPostAdmin.php文件,内容如下:

<?phpnamespace AppBundle\Admin;use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;class BlogPostAdmin extends Admin
{protected function configureFormFields(FormMapper $formMapper){$formMapper->add('title', 'text')->add('body', 'text')->add('create_time', 'datetime');}protected function configureListFields(ListMapper $listMapper){$listMapper->addIdentifier('title')->add('createTime');}
}

创建了BlogPostAdmin还不能让symfony2知道,所以还需要注册一下,修改app/config/services.yml,在services组中添加服务:

    admin.blog_post:class: AppBundle\Admin\BlogPostAdminarguments: [~, AppBundle\Entity\BlogPost, ~]tags:- { name: sonata.admin, manager_type: orm, label: Blog post }

这样还不够,还需要配置好有关自定义Admin类的路由,修改app/config/routing.yml,添加:

_sonata_admin:resource: .type: sonata_adminprefix: /admin

OK,重新打开http://172.16.142.130/app_dev.php/admin看到如下:

点开"link_list"看到了什么?

(*@ο@*) 哇~,是我们手工在数据库里添加进去的那一行哎!

点击“link_add"进去添加一条记录试试,我们添加如下一行:

点击”btn_create_adn_return_to_list“后就成功写到了数据库里啦

到此,我们已经实现了对数据库表的增删改查的管理功能

十一、轻松搭建网站管理后台相关推荐

  1. 腾讯云自助建站CloudPages教程,不会代码小白轻松搭建网站

    腾讯云自助建站CloudPages教程,不会代码小白轻松搭建网站.腾讯云建站CloudPages自助建站模板,建站神奇不需要会代码小白轻松搭建网站,CloudPages支持海量精美建站模板,可用于搭建 ...

  2. 纯手写原生PHP网站管理后台系统 网站管理系统

    一.源码简介 一套纯手写原生的PHP网站管理后台,前端利用LayUI实现,实现PHP初学者专研学习使用,对于PHP学习的人,只有熟悉了原生的PHP开发,才适合利用其它框架搭建自己的网站平台.封城期间, ...

  3. [转]22 个精美的网站管理后台模板推荐

       互联网上有大量的关于如何设计网站的教程,可以使你的工作更加容易和简单.但关于网站管理后台的教程却比较少.今天,我们提供一些非常强大的管理面板,可以帮助开发者设计网站的后台部分,另外,漂亮的后台也 ...

  4. 【谨慎学习】手把手教你破解网站管理后台帐号密码

    [导读] 对于网站运行的个人站长而言,最担心的是应如何有效且安全的去管理自己的网站,否则自己辛辛苦苦经营的网站就会被不请自来的不速之客给攻破,轻则站点数据被窃取,重则整个网站都被攻陷,导致无法恢复. ...

  5. 如何解决国产TongWeb中间件启动之后无法访问网站管理后台界面

    背景介绍:什么是国产TongWeb中间件呢? TongWeb7 是遵循 JavaEE7 Web Profile 规范的企业级应用服务器,它为企业应用提供了可靠.可伸缩.可管理和高安全的基础平台.同时具 ...

  6. 网站管理后台被破解原理分析及实例演示

    不管是作为一名个人站长.一名 Hacker 初学者还是一名网站运维人员,在这形形色色的世界中,都充满了各种挑战,在网站的运维中我们关注的是网站的安全,如何提高网站的安全性就显得有为重要. 在本场 Ch ...

  7. Matrix Admin html5网站管理后台源码 Bootstrap响应式模板主题

    Matrix Admin 响应式管理后台模板最新版本,欢迎下载使用,注意:本站提供为官网购买未压缩源码版,在官网上用10$买来,现只售15元,可以帮亲省额外开销哦,需要的亲可以到本博的淘宝小店购买. ...

  8. 基于Vite4.x+Vue3+VEPlus+Pinia搭建轻量级管理后台模板ViteAdmin

    整合vite4.js+vue3+pinia开发轻量级后台管理系统Vite-Admin 使用最新前端技术栈 vue3+vite4+vue-router+pinia2+vue-i18n+ve-plus 等 ...

  9. 网站管理后台模板 Charisma

    2019独角兽企业重金招聘Python工程师标准>>> http://www.oschina.net/p/charisma 转载于:https://my.oschina.net/u/ ...

最新文章

  1. 编程珠玑第七章 粗略估算
  2. 单例模式 之 单例模式——Holder
  3. java整数翻转_java实现整数反转
  4. SpringMVC校验---SpringMVC学习笔记(八)
  5. emqx使用webhook数据持久化到mysql
  6. 目标检测无痛涨点:大白话 Generalized Focal Loss
  7. vb程序和python哪个简单_vb能配合python写程序么?
  8. android一般会重载7个方法,《Android技术应用》答案(2013年)
  9. [转载] 全本张广泰——第一回 开篇聊闲天 青楼是非多
  10. c语言学习指南app,c语言学习手册app
  11. 从凸函数到Minkowski不等式的推导
  12. ValueError: invalid mode: ‘W‘
  13. 阿里云服务器密码忘了怎么修改
  14. 大数据必学语言Scala(三十一):scala面向对象 特质(trait)
  15. c语言 ZZ转字符串,C语言 字符串中的转义字符与字符串的长度 zz
  16. 哈萨克斯坦大型“零元购”抓捕现场
  17. Mendix公司最新调查结果显示:低代码已从企业机构应急技术进阶为核心技术
  18. c语言 指针 越界,关于指针错误使用带来的问题――数组越界
  19. 51nod1488 帕斯卡小三角形
  20. 程序员一般通过什么途径接私活?怎样搞兼职

热门文章

  1. jQuery中replaceWith与replaceAll
  2. R语言ggplot绘制鸡冠花图(南丁格尔玫瑰图)
  3. Huggingface填坑:Unexpected key(s) in state_dict: “roberta.pooler.dense.weight“....
  4. 设​置​L​i​n​u​x​开​机​以​字​符​界​面​登​陆
  5. 敷完面膜后要擦水乳吗_敷了面膜还要擦水乳吗 敷面膜后还要擦东西吗
  6. 电子商务转化率对你来说有多重要?
  7. 西部数码域名注册Python版本
  8. uber司机如何注册 uber司机详细注册流程
  9. 基于视频的行人流量密度检测
  10. android 飞行模式做了什么好处,手机“飞行模式”竟然有这么多好处?