Exemplo n.º 1
0
 protected function setUp()
 {
     $this->app = new Application(BASE_PATH, Environment::testing());
     $cfg = new \Spot\Config();
     $cfg->addConnection('sqlite', ['dbname' => 'sqlite::memory', 'driver' => 'pdo_sqlite']);
     $spot = new \Spot\Locator($cfg);
     $this->app['spot'] = $spot;
     $this->mapper = $spot->mapper(\OpenCFP\Domain\Entity\Talk::class);
     foreach ($this->entities as $entity) {
         $spot->mapper('OpenCFP\\Domain\\Entity\\' . $entity)->migrate();
     }
 }
 /**
  * @param Generator $generator
  * @return array
  */
 public function guessColumnFormatters(Generator $generator)
 {
     $formatters = array();
     $nameGuesser = new Name($generator);
     $columnTypeGuesser = new ColumnTypeGuesser($generator);
     $fields = $this->mapper->fields();
     foreach ($fields as $fieldName => $field) {
         if ($field['primary'] === true) {
             continue;
         }
         if ($formatter = $nameGuesser->guessFormat($fieldName)) {
             $formatters[$fieldName] = $formatter;
             continue;
         }
         if ($formatter = $columnTypeGuesser->guessFormat($field)) {
             $formatters[$fieldName] = $formatter;
             continue;
         }
     }
     $entityName = $this->mapper->entity();
     $entity = $this->mapper->build([]);
     $relations = $entityName::relations($this->mapper, $entity);
     foreach ($relations as $relation) {
         // We don't need any other relation here.
         if ($relation instanceof BelongsTo) {
             $fieldName = $relation->localKey();
             $entityName = $relation->entityName();
             $field = $fields[$fieldName];
             $required = $field['required'];
             $locator = $this->locator;
             $formatters[$fieldName] = function ($inserted) use($required, $entityName, $locator) {
                 if (!empty($inserted[$entityName])) {
                     return $inserted[$entityName][mt_rand(0, count($inserted[$entityName]) - 1)]->getId();
                 } else {
                     if ($required && $this->useExistingData) {
                         // We did not add anything like this, but it's required,
                         // So let's find something existing in DB.
                         $mapper = $this->locator->mapper($entityName);
                         $records = $mapper->all()->limit(self::RELATED_FETCH_COUNT)->toArray();
                         if (empty($records)) {
                             return null;
                         }
                         $id = $records[mt_rand(0, count($records) - 1)]['id'];
                         return $id;
                     } else {
                         return null;
                     }
                 }
             };
         }
     }
     return $formatters;
 }
Exemplo n.º 3
0
 * Date: 3/24/15
 * Time: 9:46 PM
 */
use GuzzleHttp\Client;
use Spot\Config;
use Spot\Locator;
require_once __DIR__ . '/vendor/autoload.php';
Dotenv::load(__DIR__);
session_start();
$app = new \Slim\Slim(array('templates.path' => './views', 'debug' => true));
$loader = new Twig_Loader_Filesystem(__DIR__ . '/views');
$twig = new Twig_Environment($loader);
$cfg = new Config();
// MySQL
$cfg->addConnection('mysql', 'mysql://' . $_ENV['DATABASE_USER'] . ':' . $_ENV['DATABASE_PASSWORD'] . '@localhost/helpmeabstract');
$spot = new Locator($cfg);
$volunteerMapper = $spot->mapper('Kayladnls\\Entity\\Volunteer');
$proposalMapper = $spot->mapper('Kayladnls\\Entity\\Proposal');
$app->notFound(function () use($app) {
    $app->redirect('/error');
});
$app->get('/', function () use($twig, $volunteerMapper) {
    $volunteers = $volunteerMapper->getForHomePage();
    echo $twig->render('index.php', array('volunteers' => $volunteers));
});
$app->get('/volunteer', function () use($twig) {
    echo $twig->render('volunteer.php');
});
$app->post('/submitVolunteer', function () use($twig, $volunteerMapper) {
    $field_errors = $volunteerMapper->verifyFields();
    if (empty($field_errors)) {