-
Notifications
You must be signed in to change notification settings - Fork 65
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
About to make some sweeping changes to relations.
- Loading branch information
1 parent
7dbea98
commit 6a5ad27
Showing
10 changed files
with
253 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,168 @@ | ||
<?php | ||
// Railsian | ||
|
||
/** | ||
* !HasMany tags, Through: TagsPosts | ||
* !BelongsTo author, Class: Person | ||
*/ | ||
class Post { } | ||
|
||
/** | ||
* !HasMany posts | ||
*/ | ||
class Person { } | ||
|
||
/** | ||
* !HasMany posts, Through: TagsPosts | ||
*/ | ||
class Tag { } | ||
|
||
/** | ||
* !BelongsTo post | ||
* !BelongsTo tag | ||
*/ | ||
class TagsPosts { } | ||
|
||
/** | ||
* !HasMany classes, Class: RecessReflectorClass,Key: packageId | ||
* !HasMany children, Class: RecessReflectorPackage,Key: parentId | ||
* !BelongsTo parent, Class: RecessReflectorPackage,Key: parentId | ||
* !Table packages | ||
*/ | ||
class RecessReflectorPackage extends Model { } | ||
|
||
////////////// | ||
// Djangonian | ||
////////////// | ||
|
||
class Post { | ||
/** !ForeignKey author, Class: Person */ | ||
public $authorId; | ||
} | ||
|
||
class Person { } | ||
|
||
class Tag { } | ||
|
||
class TagsPosts { | ||
/** !ForeignKey post */ | ||
public $postId; | ||
|
||
/** !ForeignKey tag */ | ||
public $tag; | ||
} | ||
|
||
/** | ||
* !Table packages | ||
*/ | ||
class RecessReflectorPackage extends Model { | ||
/** !Column Integer */ | ||
/** !ForeignKey parent, Class: RecessReflectorPackage, RelatedName: children */ | ||
public $parentId; | ||
} | ||
|
||
$post->tagSet(); | ||
|
||
////////////// | ||
// Recess'ian | ||
////////////// | ||
|
||
class Post { | ||
/** !ForeignKey author, Class: Person */ | ||
public $authorId; | ||
} | ||
|
||
/** !Many people */ | ||
class Person { } | ||
|
||
/** !Many tags */ | ||
class Tag { } | ||
|
||
class TagsPosts { | ||
/** !ForeignKey RelatedName: tags, JoinThrough: tag */ | ||
public $postId; | ||
|
||
/** | ||
* !ForeignKey Class: Post | ||
*/ | ||
public $oldPostId; | ||
|
||
/** !ForeignKey tag, Class: Tag, RelatedName: posts, JoinThrough: post */ | ||
public $tagId; | ||
} | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/** | ||
* Plural: posts | ||
*/ | ||
class Post extends Model { | ||
|
||
/** !Column PrimaryKey, Integer, AutoIncrement */ | ||
public $id; | ||
|
||
/** !Column Boolean */ | ||
public $isHistorical; | ||
|
||
/** !Column String */ | ||
public $title; | ||
|
||
/** !Column Text */ | ||
public $body; | ||
|
||
/** | ||
* !Column Integer | ||
* !ForeignKey Post, RelatedName: versions | ||
*/ | ||
public $originalId; | ||
|
||
/** | ||
* !Column Integer | ||
* !ForeignKey Name: author, Class: User | ||
*/ | ||
public $writerId; | ||
|
||
/** | ||
* !Column Integer | ||
* !ForeignKey | ||
*/ | ||
public $categoryId; | ||
|
||
} | ||
|
||
/** !Plural: users */ | ||
class User extends Model { | ||
|
||
} | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/** | ||
* !Table packages | ||
*/ | ||
class RecessReflectorPackage extends Model { | ||
/** !Column Integer */ | ||
/** !ForeignKey parent, Class: RecessReflectorPackage, RelatedName: children */ | ||
public $parentId; | ||
} | ||
|
||
|
||
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
<?php | ||
|
||
class ModelConventions { | ||
|
||
// To provide your own naming conventions override these methods: | ||
|
||
static final function setConventions(ModelConventions $instance) { | ||
self::$instance = $instance; | ||
} | ||
|
||
protected function myTableNameFromClass($class) { | ||
return strtolower($class); | ||
} | ||
|
||
protected function myRelatedClassFromBelongsToName($belongsToName) { | ||
return ucfirst($belongsToName); | ||
} | ||
|
||
protected function myRelatedForeignKeyFromBelongsToName($belongsToName) { | ||
return $belongsToName . 'Id'; | ||
} | ||
|
||
protected function myRelatedClassFromHasManyName($hasManyName) { | ||
return ucfirst($hasManyName); | ||
} | ||
|
||
protected function myRelatedForeignKeyFromHasManyModelName($modelName) { | ||
if($modelName != '') { | ||
$modelName[0] = strtolower($modelName[0]); | ||
} | ||
return $modelName . 'Id'; | ||
} | ||
|
||
// End overrideable methods. | ||
|
||
protected $instance; | ||
|
||
protected function __construct() {} | ||
|
||
static final function init() { | ||
self::$instance = new ModelConventions(); | ||
} | ||
|
||
static final function tableNameFromClass($class) { | ||
return self::$instance->myTableNameFromClass($class); | ||
} | ||
|
||
static final function relatedClassFromBelongsToName($belongsToName) { | ||
return self::$instance->myRelatedClassFromBelongsToName($belongsToName); | ||
} | ||
|
||
static final function relatedForeignKeyFromBelongsToName($belongsToName) { | ||
return self::$instance->myRelatedForeignKeyFromBelongsToName($belongsToName); | ||
} | ||
|
||
static final function relatedClassFromHasManyName($hasManyName) { | ||
return self::$instance->myRelatedClassFromHasManyName($hasManyName); | ||
} | ||
|
||
static final function relatedForeignKeyFromHasManyClass($class) { | ||
return self::$instance->myRelatedForeignKeyFromHasManyClass($class); | ||
} | ||
|
||
|
||
|
||
|
||
} | ||
ModelConventions::init(); | ||
|
||
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
recess/lib/recess/database/orm/relationships/Relationship.class.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters