• Stars
    star
    727
  • Rank 62,329 (Top 2 %)
  • Language
    Shell
  • Created over 13 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Modularize extensions using symlinks. Voted #1 Magento tool by @WebShopApps!

modman (Module Manager)

Developing extensions for software that doesn't allow you to separate your files from core files, and keeping that extension under version control and making it easy to deploy is now much, much easier. Development of this script was inspired by Magento which forces you to mix your extension files all throughout the core code directories. With modman, you can specify in a text file where you want your directories and files to be mapped to, and it will maintain symlinks for you so that your code is easy to hack and deploy.

All of your cloned/checked-out modules will be kept in a directory named .modman in the location where you run modman init.

Requirements

  • Linux/Unix or OSX (not cygwin, see Windows Users below)
  • bash
  • Common utilities available in your PATH: grep (POSIX), find, ln, cp, basename, dirname
  • Web server must follow symlinks
  • git and/or subversion are optional (not required for "deploy" command)

Magento Users

If using template files in a modman module, you must either:

Option 1:

Use a patched version of Mage/Core/Block/Template.php. This gist is itself a modman module so you can install it by cloning it directly or you can integrate it into your environment some other way.

$ modman clone template-patch https://gist.github.com/35c0d32dd651c4c8c840.git

NOTE: I provide no warranties for using this patch. Use at your own risk!

Option 2:

Enable "Allow Symlinks" (found under System > Configuration > Advanced > Developer).

Allow Symlinks

NOTE: Disabling this security protection does decrease security as it allows template files to be loaded from any location. However, the risk is not so much symlinks as it is specially crafted template paths. The patched Template.php file (Option 1) allows the use of symlinks but should still prevent templates from being loaded from directories other than the app/design directory.

Windows Users

Windows (including cygwin) is not supported by this script, but there is a PHP-port of modman which works on Windows. I am not affiliated with the authors and do not provide support for the PHP port, only a link here for reference.

Installation

To install Modman, you can either install the library in your user's root folder, or you can install Modman globally. Regardless of which option you choose, first run one of these two scripts to download the Modman repo.

bash < <(wget -q --no-check-certificate -O - https://raw.github.com/colinmollenhour/modman/master/modman-installer)

or

bash < <(curl -s -L https://raw.github.com/colinmollenhour/modman/master/modman-installer)

1. Root Folder

If you'd like to keep the script in its native location at ~/bin/, just reload your Bash profile.

source ~/.profile

2. Installing Modman Globally

To make the script global after downloading, move the Modman script to an appropriate script folder, (e.g. /usr/local/bin/ or something similar within /usr/*). Moving it to one of the paths already loaded in your $PATH variable will automatically pick it up without a ~/.profile reload.

mv ~/bin/modman /usr/local/{{ preferred folder }}

And then finally, alias Modman with a symlink if you want something shorter to type (optional)

ln -s /usr/local/{{ preferred folder }}/modman /usr/local/{{ preferred folder }}/{{ symlink }}

Note: modman is simply a bash script, so to use it you just need to place it in your $PATH and change its mode to executable.

Getting Started

Run modman --help to get the basic usage summary or modman --tutorial to see a brief tutorial. For more in-depth information please see the Modman Wiki

Version Control Systems

Modman currently supports subversion and git. Other VCSs could be used by manually checking out the source code into the proper directory and using the "deploy" command.

Author

License

Copyright 2009 Colin Mollenhour

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

More Repositories

1

Cm_Cache_Backend_Redis

A Zend_Cache backend for Redis with full support for tags (works great with Magento)
PHP
391
star
2

Cm_RedisSession

Redis-based session handler for Magento with optimistic locking
PHP
212
star
3

mongodb-php-odm

A simple but powerful set of wrappers for using MongoDb in PHP (also a Kohana 3 module)
PHP
211
star
4

magento-lite

Magento CE stripped down to a general-purpose framework.
PHP
171
star
5

Cm_Cache_Backend_File

Much improved replacement for Zend_Cache_Backend_File - works great with Magento!
PHP
146
star
6

Cm_Diehard

Advanced full page cache module for Magento supporting multiple caching methods (browser, reverse proxies, app cache) and multiple hole-punching methods (Ajax, ESI and server-side). Use with any caching reverse proxy or standalone.
PHP
131
star
7

magento-mongo

MongoDb abstraction layer and atomic job queue for Magento
PHP
124
star
8

magento-cache-benchmark

Benchmarking script for comparing performance of Magento cache backends.
PHP
79
star
9

php-redis-session-abstract

A Redis-backed PHP session handler with optimistic locking
PHP
61
star
10

Cm_OrderProducts

Add Product SKUs or Names column to the Magento Orders Grid
PHP
35
star
11

node-caching-proxy

A caching reverse proxy powered by Node.js and MongoDb.
JavaScript
18
star
12

Cm_Saas

PHP
9
star
13

magento-zend

Mirror of Zend Framework classes for use with magento-lite module
PHP
6
star
14

Cm_MongoSession

A session handler for Magento powered by MongoDb efficiently implementing optimistic locking
PHP
6
star
15

Logger

PHP
6
star
16

Cm_DiehardSample

A sample implementation of Cm_Diehard
PHP
5
star
17

Cm_MountStorage

Magento media storage driver using a mounted filesystem as a backend.
PHP
5
star
18

docker-confd-firewall

Docker container for managing firewall via etcd and environment variables.
Shell
4
star
19

haproxy-service

A Docker container for HAProxy with auto-updating config based on DNS resolution (Docker Swarm, Kontena, etc).
Shell
3
star
20

docker-nodeadmin

Dockerfile for NodeAdmin
JavaScript
1
star
21

pulumi-gcp-vault

Serverless Vault with Pulumi and Cloud Run
TypeScript
1
star