Phorge
repository·master·Indexed 41 days ago
https://github.com/phorgeit/phorgeA community-maintained fork of Phabricator, Phorge is a suite of web applications for managing the software development lifecycle, including code review, bug tracking, project management, repository management, and team communication.
What's inside Phorge
- D3 (Data-Driven Documents) is an open-source JavaScript library used for visualizing data. It uses a low-level approach built on web standards to provide high flexibility for creating dynamic, data-driven graphics. It is often used as a foundational building block for higher-level chart libraries.
Overview of Phorge applications
masterPhorge is a collection of web applications designed to assist software companies in their development lifecycle. It is a community-maintained fork of Phabricator and provides tools for:
- Code Review & Auditing: Reviewing and auditing source code.
- Repository Management: Hosting and browsing repositories.
- Issue Tracking: Tracking bugs and managing projects.
- Communication: Conversing with team members.
- Documentation: Writing and reading documentation (writing stuff down and reading it later).
- Other Utilities: Various other management and organizational tools.
Overview of JsShrink
masterJsShrink is a lightweight tool designed to remove spaces and comments from JavaScript code. It is specifically intended for developers who require a solution that runs strictly in PHP or JavaScript without external dependencies.
Limitations and Comparisons:
- Semicolons: Requires all statements to end with a semicolon.
- Power: Google Closure Compiler is noted as a more powerful and efficient alternative if advanced features are required.
- Compatibility: Unlike many other JS minifiers, JsShrink is designed to process valid JavaScript code correctly.
Install Porter Stemmer via Composer
masterTo install the Porter Stemmer library, add the following dependency to your
composer.jsonfile and run the install command.{ "require": { "camspiers/porter-stemmer": "1.0.0" } }$ composer installInstall the mailparse PHP extension
masterThe parser is a wrapper for the
mailparseextension. You must ensure the extension is installed and enabled. You can verify the installation by runningphp -m | grep mailparse(it should returnmailparse).Debian, Ubuntu & derivatives
sudo apt install php-cli php-mailparseMacOS
brew install php pecl install mailparseOther platforms (Linux/Generic)
sudo apt install php-cli php-pear php-dev php-mbstring pecl install mailparseWindows
Download the
mailparseDLL from PECL and addextension=php_mailparse.dllto yourphp.inifile.Install php-mime-mail-parser via Composer
masterTo install the latest version of the parser, use Composer in your project directory.
composer require php-mime-mail-parser/php-mime-mail-parserMinify JavaScript using JsShrink in PHP
masterTo minify JavaScript code within a PHP environment, include the
jsShrink.phpfile and call thejsShrink()function. This function accepts a string of JavaScript code and returns the minified version with spaces and comments removed.Requirement: All JavaScript statements must end with a semicolon. It is recommended to verify your code with JSHint or JSLint before minification to ensure compliance.
<?php include "jsShrink.php"; echo jsShrink($code); ?>Minify JavaScript using JsShrink in JavaScript
masterTo minify JavaScript code in a client-side environment, include the
jsShrink.jsscript in your HTML. You can then use thejsShrink()function to process a string of JavaScript code.Requirement: All JavaScript statements must end with a semicolon. It is recommended to verify your code with JSHint or JSLint before minification to ensure compliance.
<script type="text/javascript" src="jsShrink.js"></script> <script type="text/javascript"> textarea.value = jsShrink(code); </script>Configure Postfix to pipe emails to a PHP script
masterTo process incoming emails via a PHP script using this parser, configure Postfix to use a
pipetransport.- In
/etc/postfix/master.cf, add a custom hook:
myhook unix - n n - - pipe flags=F user=www-data argv=php -c /etc/php5/apache2/php.ini -f /var/www/test.php ${sender} ${size} ${recipient}- Register the hook in
master.cfby editing thesmtpdline:
smtp inet n - - - - smtpd -o content_filter=myhook:dummyNote: The PHP script must use
$parser->setStream(fopen("php://stdin", "r"))to read the piped email content.myhook unix - n n - - pipe flags=F user=www-data argv=php -c /etc/php5/apache2/php.ini -f /var/www/test.php ${sender} ${size} ${recipient}- In
Overview of Javelin
masterJavelin is a compact, performance-oriented JavaScript library built around the principle of event delegation. It is specifically designed for high-performance requirements in large-scale projects. Note that for smaller-scale projects, other libraries might offer more features or ease of development, as Javelin prioritizes execution speed and efficiency.Choose the correct Javelin package flavor
masterJavelin provides two versions of its packages depending on your environment:
- dev: Includes comments and debugging code. Use this during development.
- min: Stripped of comments and debugging information with crushed symbols. Use this for production environments to optimize performance.
Send differential action emails via CLI
masterThe
DifferentialActionEmailCommandis a specialized command used to process emails that trigger actions on Differential revisions. It maps specific keywords or aliases found in an email toDifferentialRevisionActionTransactionobjects.When an email is received, this command identifies the intended action (e.g., accepting a revision, requesting changes) by matching keywords against the available
DifferentialRevisionActionTransactiontypes. It then builds the appropriate application transactions to update the state of the Differential revision.