A Modular (HMVC) App Building Framework - complete with front end, REST api, and 2 admin areas (Admin / Secure)
Documentation is now available: [Ignition-Go Documentation on GitHub] (http://ci-blox.github.io/Ignition-Go/#/concepts/ACL)Take a look at the key concepts documents and also see the /docs folder for more.
****NOTE: now using Yarn for packages (so Bower is not needed / optional).
Example: git clone https://github.com/ci-blox/Ignition-Go.git myigoapp
Either:
2a) use Yarn and Gulpjs (highly recommended for non-experts) - go to step 3
-or-
2b) map your webserver to the 'public' folder to use pre-installed versions of packages
(skip to step 8)
Install NPM node.js: package manager for node modules, and [install Yarn] (https://yarnpkg.com/lang/en/docs/install/)
Change directory to new site/web app root
Example: cd myigoapp
Install all the packages and components
Type: yarn install
Create an empty mySql or MariaDb database (default db name is ci_blox) and a user (default is root/no password). Note that the database.php file in application/config contains these configuration settings.
Example: use a tool like HeidiSQL or phpMyAdmin and create both a database and a user with privileges that new database
Run 'gulp' (note that gulp will run continuously in 'watch' mode, watching for css and js changes).
then
EITHER type: gulp
OR.. type: gulp serve
OR.. type: gulp build
which just rebuilds the JS and CSS
(Optional, required if no gulp or in production) In Apache, map the 'public' folder to localhost or other url
Example: in your httpd-vhosts.conf file, add new <VirtualHost>
section and restart Apache
eg if you used gulp, goto http://localhost:8080/install/init
if you had created virtual host igotestlocal.com, then go to http://igotestlocal.com/install/init in your browser
Ignition Go is a jumpstart for your rapid development:
Folder structure (most but not all folders shown). **=not available yet
application/ --- Main application (CodeIgniter) source folder
config/ --- Config files
production/ --- Override Configuration when ENVIRONMENT is set as "production"
controllers/ --- Controllers for Frontend Website; extends from MX_Controller, Base_Controller or Front_Controller
Cli.php --- Utility function that can only be called from command line
Home.php --- Default controller for Frontend Website
core/ --- Extending CodeIgniter core classes; can also be used within modules (MY_????.php); Also extendable controllers here
helpers/ --- Contains custom helper functions being used throughout this repo
language/ --- Preset language files
lib/ --- Custom libraries (e.g. Data Importer)
models/ --- Sample model extending from MY_Model
toolblox/ ** --- Each blox module can be installed or removed
modules/ --- Each module can be accessed by http://{base_url}/{module_name}/{module_controller}/, etc.
admin/ --- Module for Admin Panel
config/ --- Configuration for Admin Panel (overriding application/config/)
controllers/ --- Controllers for Admin Panel; also extends from MY_Controller
helpers/ --- Helper classes, e.g. to generate AdminLTE widgets
lib/ --- Libraries admin
models/ --- Models only being used in Admin panel
views/ --- Views for Admin Panel; can reuse Frontend views, or override by using same path/filename
api/ --- A module specific for REST API endpoints
buildablox/ --- A module to generate and add/remove blox
logs/ --- A module for viewing the daily logs
securinator/ --- A module for roles, permissions, security settings
translate/ --- A module to edit (and auto-generate**) translations
third_party/
MX/ --- Required for HMVC extension
views/ --- Views for Frontend Website
public/ --- SITE ROOT (point Apache here)
public/assets/
css/ --- Custom CSS files append to each site
dist/ --- Minified scripts, stylesheets (and optionally) optimized images via Gulp tasks
fonts/ --- Font files copied via Gulp tasks
img/ --- Source image files before optimization
js/ --- Custom CSS files append to each site
uploads/ --- Default directory of upload files, where permission should set as writable
gulpfile.js/ --- Task runner following gulp-starter 2.0 practice
sql/ --- MySQL files
igocore/ --- Ignition Go core files
igocore/system/ --- CodeIgniter core files (clean CI3 installation with modifications only to reference IGO core)
A gulp configuration (gulpfile.js) is included. It utilizes package and component tools from these sites:
Please contact us to contribute.
Special thanks to the Bonfire project and those who contributed to it - many features and infrastructure concepts were inspired or incorporated outright from that project. Also thanks to all the projects like GuzzlePHP and countless others that are open source, whose components are incorporated and allow this initiative to exist. Finally, thanks especially to the CodeIgniter team, with whom CodeIgniter continues to thrive!
Go开发报错 -- Golang strings.Builder type undefined 在Go开发中,Go语言版本 go 1.10 以下版本,使用strings.Builder报错 I was having a problem with the strings.Builder type in GO. Attempted to run the example code verbati
Go语言中可以使用反引号或者双引号来定义字符串。 双引号:字符串使用双引号括起来,其中相关的转义字符将被替换。 反引号:字符串使用反引号括起来,其中相关的转义字符不会被替换。 创建字符串字面量,程序清单如下: package main import( "fmt" ) func main(){ s:="I am an interpreted string literal" fmt.P
//########################################################### //D:\go\go\go库源码\源码库测试文件集合\strings-example_test.go // Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is g
go语言支持原生字符串类型和c语言比较优点 go支持原生字符串类型 go支持原生字符串类型, go string 类型的数据是不可变的,提高了字符串的并发安全性和存储利用率,我们不能修改字符串的某一部分值,可以进行二次赋值操作 var s string = "hello" s[0] = 'k' // 错误:字符串的内容是不可改变的 s = "gopher" // ok 类型的数据是不可变的这
string操作在编程中具有极高的频率,那么string中有哪些有用的方法呢? 使用strings直接操作 Compare func Compare(a, b string) int 按照字典序比较两个字符串,通常情况下直接使用=,>,<会更快一些。 Contains,ContainsAny 和 ContainsRune func Contains(s, substr string) bool f
1 WebAssembly简介 WebAssembly(简称Wasm)是一种可移植、高性能的二进制代码格式,可以在现代Web浏览器中运行。Wasm是一种开放的标准,由WebAssembly组织推广和维护。它旨在通过在浏览器中提供一种比JavaScript更高效和更快的运行时环境,来改进Web应用程序的性能和功能。 Wasm的设计目标是在Web浏览器中提供与本机代码相同的性能和安全性,并且它可以使用
github地址 帮助一些从PHP、Python等语言转Golang的web开发者,快速熟悉Go的一些特性,快速搭建自己的web应用。 特性 数据库连接池:支持MySQL、PsSQL、Redis等 将请求参数和校验规则封装成实体(entity) 引入getter,使客户端可以按需获取数据 封装好的、易于使用的参数校验 支持YAML配置文件 环境要求 go1.11或更高版本 示例 示例 灵感来源 g
故人西辞黄鹤去,此地空余黄鹤楼 不知道一千多年前诗仙李白在创作这首诗词的内心是怎样的,如果真的有时空穿梭机这种神奇的东西,倒是可以拿来穿越一下。只可惜昔人已逝、物是人非,诗仙早已经消失在历史的年轮中,唯黄鹤楼历经千年,依然矗立于长江之巅。初尝不知诗中意,再读已是诗中人。在这一站的路程中,短短不到一载的时光,左右两边刚刚熟络的大佬由于团队中各种各样的原因,先后选择了离开,或许在不远的未来,自己也许会
ubuntu20.04 64位下面交叉编译go文件报错 前提: 有linux gcc交叉编译包 安装了32位反编译环境 已解压交叉编译包到usr目录 如下: /home/k/usr/bin/…/libexec/gcc/arm-nuvoton-linux-gnueabi/4.8.5/cc1: error while loading shared libraries: libmpc.so.3: can
ignition 通过提供即用组件和包含许多样板文件的实用类,可以让你的 Android 应用快速起步。ignition 涵盖的区域包括: Widget、Adapter、Dialog 等 UI 组件; 允许编写简单却强大的网络代码的 HTTP Wrapper 库; 加载远程 Web 图像并进行缓存的类; 简单但有效的缓存框架(将对所有对象树做出响应的HTTP缓存到内存或硬盘中); Intents、
问题内容: 拖放文件上传可以在Firefox 3.6中完成。 通过Google搜索 html5拖放文件上传- gmail,可以看到以下 内容: http://www.appelsiini.net/2009/10/html5-drag-and-drop-multiple-file-upload http://www.thecssninja.com/javascript/drag-and-drop-u
问题内容: 我有一个使用Google Maps API来显示地图的页面。当我直接加载页面时,地图出现。但是,当我尝试使用AJAX加载页面时,出现错误: 为什么是这样? 这是带有地图的页面: 这是带有AJAX调用的页面: 谢谢你的帮助。 问题答案: 默认情况下,文档完成加载后无法加载该API,您需要异步加载该API。 用地图修改页面:
问题内容: 这是Google BigQuery中多级数据透视表的后续问题,我想知道是否可以使用单个查询在GoogleBigQuery中构造嵌套数据透视表。是的,因此在这个后续问题中,我想探讨一下一般情况。 这是我正在使用的数据的示例(此共享Google表格中也包含该数据) 现在,我想构建一个具有以下属性的数据透视表: 行级和列级的嵌套级(上一个问题只有嵌套级) 行和列中的小计(前一个只有总计) 多
问题内容: 如何通过App Engine的URLFetch服务(在Java中)指定用于发出基本身份验证请求的用户名和密码? 看来我可以设置HTTP标头: Basic-Auth的适当标题是什么? 问题答案: 这是HTTP上的基本身份验证标头: 授权:基本的base64编码(用户名:password) 例如: 您将需要执行以下操作: 为此,您将需要一个base64编解码器api,例如Apache Co
问题内容: 我正在使用Java和XStream通过http解析Google地理编码请求。我的想法是拥有一个具有所有地理编码属性(例如纬度/经度,城市,省/州等)的Address类,但是我在使用xstream解析xml时遇到了问题。 Google的回应与此类似: 不能很好地显示出来,但是代码的内容在AddressDetails标记中。 无论如何,我是Java和XStream的新手,所以API术语对我